LINUX.ORG.RU

jQuery ошибки, текст «function» вместо параметров

 , , ,


0

1

Всем привет!

Бьюсь с ошибкой уже 4 дня. Мой скрипт генерирует html с js. Если сохранить эту сгенерированную html и открыть по url, то всё работает, а через скрипт нет. Вместо параметров на сервер передаёт текст «function» и дальше скрипт не работает. Где может быть затык? Какие данные вам нужны, код, настройки apache или ещё что?
jQuery подключал и локально и google'овскую в <head>.
Благодарю за ответы!

★★☆

В-нулевых все проблемы от кривых рук, а кривые руки скорее всего от jquery, возьми ванильку и сделай с ней — 90% что все проблемы решатся за счёт понимания процесса.

Во-первых как минимум эту сгенерированную со всеми http заголовками от сервера для обоих случаев нужны. И твой скрипт через который оно не работает тоже.

Во-вторых настройки апачи это скорее в JOB, тут лучше сразу по заголовкам посмотреть что не так самому настроить как надо. Заголовки это стандарты, по ним советы нужны и важны, апачи это инструмент, по ним советы вредны ибо мастер должен сам знать как пользоваться инструментом. Или если ты не мастер — нанимай мастера и пусть он инструментом пользуется.

В-третьих подключать js с других доменов — плохая практика. С чужих — ещё и порочная.

Goury ★★★★★
()

Сервер для Ajax:

#include <time.h>//Директива нужна для работы со временем
#include <string>//Для функций работы со строками
#include <iostream>//Для потоков ввода / выводв
#include <fstream>
#include <iomanip>//Для манипулятора setw
#include <locale>
#include <locale.h>

using namespace std;

// Главная функция. Именно она и запускается при старте сценария,
int main(void)
{
    setlocale(LC_CTYPE, "ru_RU.UTF-8");

    //Начальный заголовок скрипта
    wcout << "Content-type: text/html\n\n";

    wstring wsParameters;
    //Для метода "GET"
    //char *cParameters = '\0';
    const int MAX_COUNT_SYMBOL_PARAMETERS = 1024;//Максимальное количество символов всех параметров
    wcin >> setw (MAX_COUNT_SYMBOL_PARAMETERS) >> wsParameters;//Считывание параматров со стандартного ввода
    //Преобразование wstring в string
    string sParameters(wsParameters.length(), L' '); // Make room for characters
    copy(wsParameters.begin(), wsParameters.end(), sParameters.begin());
    //Для метода "GET"
    //cParameters  = getenv("QUERY_STRING");
    //sParameters = string(cParameters);
    ofstream oFile;
    oFile.open("1.txt", ios::out);
    oFile.write(sParameters.c_str(), sParameters.length());
    oFile.close();
    wcout << wsParameters;

//    wcout << L"<P align=center><!--LiveInternet counter--><script type=\"text/javascript\">document.write(\"<a href='http://www.liveinternet.ru/click' target=_blank><img src='//counter.yadro.ru/hit?t26.6;r\" + escape(document.referrer) + ((typeof(screen)==\"undefined\")?\"\":\";s\"+screen.width+\"*\"+screen.height+\"*\"+(screen.colorDepth?screen.colorDepth:screen.pixelDepth)) + \";u\" + escape(document.URL) + \";\" + Math.random() + \"' border=0 width=88 height=15 alt='' title='LiveInternet: показано число посетителей за сегодня'><\\/a>\")</script><!--/LiveInternet--></P>";
/*    wcout << "</TD></TR></TABLE>"
             " </body>\n"
            "</html>"*/;
    return 0;
}
Скрипт куски кода: Начало-конец
#include <time.h>//Директива нужна для работы со временем
#include <string>//Для функций работы со строками
#include <iostream>//Для потоков ввода / выводв
#include <iomanip>//Для манипулятора setw
#include <locale>
#include <locale.h>
#include "tlanguage.h"
#include "tcrossword.h"
#include "version.h"

using namespace std;

// Главная функция. Именно она и запускается при старте сценария,
int main(void)
{
    timespec startTime;//Начальное время
    timespec endTime;//Конечное время
    clock_gettime(CLOCK_REALTIME, &startTime);//Получить время начала работы скрипта
    //Для GNU / Linux Debian 6 отладки в консоли(командной строке)
//    locale::global(locale(""));
    //Для FreeBSD9 / GNU / Linux Apache
    setlocale(LC_CTYPE, "ru_RU.UTF-8");

    //Начальный заголовок скрипта
    wcout << "Content-type: text/html\n"
            "Pragma: no-cache\n"
            "\n"
            "<html>\n"
            " <head>\n"
            "  <title> " APPLICATION_NAME " </title>\n"
            "  <META http-equiv=Content-Type content=\"text/html; charset=utf-8\">\n"
            " </head>\n"
            " <body>\n"
            " <center>";

    wstring wsParameters;
    //Для метода "GET"
    //char *cParameters = '\0';
    const int MAX_COUNT_SYMBOL_PARAMETERS = 1024;//Максимальное количество символов всех параметров
    wcin >> setw (MAX_COUNT_SYMBOL_PARAMETERS) >> wsParameters;//Считывание параматров со стандартного ввода
    //Преобразование wstring в string
    string sParameters(wsParameters.length(), L' '); // Make room for characters
    copy(wsParameters.begin(), wsParameters.end(), sParameters.begin());
    //Для метода "GET"
    //cParameters  = getenv("QUERY_STRING");
    //sParameters = string(cParameters);
    TLanguage *vLanguage = new TLanguage;
    TCrossword *vCrossword = new TCrossword;
    unsigned char ucState = 0;//Состояние возврата функции "getData"

    wcout << " </body>\n"
            "</html>";

    //vCrossword->clear();
    delete vLanguage;
    delete vCrossword;

    return 0;
}
Функция с использованием jQuery:
bool TCrossword::showGrid()
{
    //char cLetter = '\0';
    wcout << "<script>\n"
             "function sendText(str)\n"
             "{\n"
             "$.ajax({\n"
                 "type: 'POST',\n"
                 "url: \"cgi-bin/ccgi\",\n"
                 "data: str,\n"
                 "success: function (msg) {\n"
             "alert('message' + msg);\n"
                 "}\n"
             "});\n"
             "}\n"
             "function func1(str){str.style.backgroundColor = '#FF0000';}\n"
             "</script>\n";

    wcout << "  <table border=1 width=100%>\n"
            "   <TR>";

    //Формирование html-таблицы в виде сетки кроссворда
    for (unsigned char i = 0; i < grid->rowCount(); i++)
    {
        wcout << "</TR>\n"
                << "   <TR>";

        for (unsigned char j = 0; j < grid->columnCount(); j++)
        {
            if(grid->cell(i, j)->color() == TCell::COLOR_BLACK)
                wcout << "    <TD id=\"" << i << "." << j << "\" onclick=\"sendText('text1233333')\" bgcolor=\"black\" WIDTH=\"" << grid->cell(i, j)->size() << "\" HEIGHT=\""
                      << grid->cell(i, j)->size() << "\">.</TD>\n";
            else
            {
                if (grid->cell(i, j)->letter() == wchar_t(NULL))
                {
                    if (grid->cell(i, j)->color() == TCell::COLOR_LIME)
                        wcout << "    <TD id=\"" << i << "." << j << "\" align=\"center\" bgcolor=\"lime\" WIDTH=\"" << grid->cell(i, j)->size() << "\" HEIGHT=\""
                              << grid->cell(i, j)->size() << "\"   onclick=\"sendText('ghjfghjkjk')\"><font color=\"lime\">.</font></TD>\n";

                    if (grid->cell(i, j)->color() == TCell::COLOR_WHITE)
                        wcout << "    <TD id=\"" << i << "." << j << "\" align=\"center\" bgcolor=\"white\" WIDTH=\"" << grid->cell(i, j)->size() << "\" HEIGHT=\""
                              << grid->cell(i, j)->size() << "\"  onclick=\"sendText('ghjfghjkjk')\"><font color=\"white\">.</font> </TD>\n";
                }
                else
                {
                    //cLetter = grid->cell(i,j).letter();

                    if (grid->cell(i, j)->color() == TCell::COLOR_LIME)
                        wcout << "    <TD id=\"" << i << "." << j << "\" align=\"center\" bgcolor=\"lime\" WIDTH=\"" << grid->cell(i, j)->size() << "\" HEIGHT=\""
                              << grid->cell(i, j)->size() << "\"  onclick=\"sendText('ghjfghjkjk')\"><font color=\"black\">" << grid->cell(i, j)->letter() << "</font></TD>\n";

                    if (grid->cell(i, j)->color() == TCell::COLOR_WHITE)
                        wcout << "    <TD id=\"" << i << "." << j << "\" align=\ncenter\n bgcolor=\"white\" WIDTH=\"" << grid->cell(i, j)->size() << "\" HEIGHT=\""
                              << grid->cell(i, j)->size() << "\"   onclick=\"sendText('ghjfghjkjk')\"><font color=\"black\">" << grid->cell(i, j)->letter() << "</font> </TD>\n";
                }
            }
        }
    }
    wcout << "  </table>\n";
    return true;
}
Получаемая html: http://ok.labft.org/ok.html
Так обрабатываю щелчок по ячейке:
<TD id="0.0" onclick="sendText('text1233333')" bgcolor="black" WIDTH="20" HEIGHT="20">.</TD>

xwicked ★★☆
() автор топика
Ответ на: комментарий от Goury

Во-вторых настройки апачи это скорее в JOB
Или если ты не мастер — нанимай мастера и пусть он инструментом пользуется.

Хм, кто-то думает, что разрабатывается что-то коммерческое?

xwicked ★★☆
() автор топика
Ответ на: комментарий от theNamelessOne

Я как-то уже говорил, что в 2009 году создавался минималистичный интерфейс Клёст-кроссворда на 14"(!) мониторе в госучереждении, где я работал. Толстосумы сами виноваты, что из меня не выходит потре*ителя...

xwicked ★★☆
() автор топика
Ответ на: комментарий от xwicked

Если так хочется веб на цпп (каждый дрочит как он хочет, вопросов нет) нагули или запили шаблонизатор хотя бы. Отдели разные языки. Тогда может сразу и увидишь где ошибка.

Debasher ★★★★★
()
Ответ на: комментарий от Debasher

Я 1 раз оплатил хостинг за год. Я один раз написал на цпп и у меня этот скрипт обрабатывает запрос максимум 3мс, то есть его не смогут перегрузить 100 000 хомячков, что и требовалось. Он спокойно будет работать, без необходимости обслуживания и изучения лишних(возможно тормозных) языков программирования тчк

xwicked ★★☆
() автор топика
Ответ на: комментарий от xwicked

Толстосумы

Кек, ох уж эти капиталисты!

anonymous
()
Ответ на: комментарий от xwicked

Я один раз написал на цпп и у меня этот скрипт обрабатывает запрос максимум 3мс, то есть его не смогут перегрузить 100 000 хомячков, что и требовалось.

Теперь мне все DDOS нипочём. Ушел переписывать все web-интерфейсы на С++. Спасибо друг, ты открыл мне глаза.

znenyegvkby
()
Ответ на: комментарий от deep-purple

Поищи в моих темах 2-3ёх последних, там я все доводы свои и мировые привожу в пользу цпп и пых там близко не стоит по скорости. Про теоретическую вероятность в обозримом будущем увеличить скорость пыха 7.

xwicked ★★☆
() автор топика
Ответ на: комментарий от znenyegvkby

Ежедневными бэкапами и ддосами занимается хостер тчк

xwicked ★★☆
() автор топика
Ответ на: комментарий от anonymous

Что лучше в условиях виртуального хостинга, стабильно работающий чёрно-белый телевизор или цветной с кривым стартером и молотком?

xwicked ★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.