GM_xmlhttpRequest responseText пустой в Firefox, но идеальный в Chrome - PullRequest
2 голосов
/ 15 января 2012

Я пытаюсь сделать пользовательский скрипт для Chrome и Greasemonkey в Firefox.

Я использую GM_xmlhttpRequest, поскольку он должен работать на обеих платформах.Код запроса работает в обоих браузерах, но в Firefox текст responseText пуст, в отличие от Chrome, где я получаю ожидаемый ответ.

Код usercript:

// ==UserScript==  
// @include        *.website.org/Forum/Read.aspx?*  
// ==/UserScript==

        getstr = "thread="+thread+"&day="+getday;
    GM_xmlhttpRequest({
        method: "POST",
        url: "http://www.other.org/js/gm/get.php",
        data: getstr,
        headers: {
            "Content-Type": "application/x-www-form-urlencoded",
            "Content-type":"charset=utf-8"
        },
        onload: function(response) {
                        alert(response.responseText);
        }
    });

php-скриптна сайте «other.org»:

    $json = json_encode($array);
    echo $json;

Пользовательский скрипт обрабатывает ответ с помощью JSON.parse (), но это здесь не важно.

В Chrome это работает отлично, но responseText пуст в Firefox.

Я читал о том, что это может быть связано с политиками того же происхождения.Но я не понимаю, как это может быть и как я могу это исправить.Вся помощь очень приветствуется!

1 Ответ

3 голосов
/ 15 января 2012

Объекты не могут иметь несколько свойств с одинаковыми именами. Поместите значение заголовка charset в первый Content-Type.

Кроме того, попробуйте добавить дополнительные заголовки, Content-Length, в частности. Самый безопасный вариант - проверить, какие заголовки Firefox отправляет на обычные POST-запросы (когда вы отправляете форму вручную), и скопировать их все.

...