Изпращане на POST данни чрез Firefox Request API

Здравейте, ще съм много благодарен за помощ по този въпрос за API на Firefox.

Имам уеб страница, която слуша за POST променлива, наречена sausage:

<!DOCTYPE HTML>
<body>
<?php   
echo $_POST['sausage'];
?>

Използване на API за заявки в SDK за добавки на Firefox , направих бутон, който трябва да зареди моята уеб страница, докато изпраща POST променливата наденица:

var buttons = require('sdk/ui/button/action');
var tabs = require("sdk/tabs");
var Request = require("sdk/request").Request;

 var button = buttons.ActionButton({
    id: "mozilla-link",
    label: "Visit Mozilla",
    icon: {
        "16": "./icon-16.png",
        "32": "./icon-32.png",
        "64": "./icon-64.png"
        },
    onClick: handleClick
});

function handleClick(state)
{
    tabs.open({
        url: "http://localhost/home.php/",
        onOpen: runScript
    });
}

function runScript(tab)
{
    Request({
      url: "http://localhost/home.php/",
      content: { sausage: 'sausage' }
    }).post();
} 

Това зарежда целевата страница, но не изпраща променливата POST, така че функцията php echo извежда грешка. Моля, може ли някой да обясни какво се е объркало. Особено бих искал да избегна използването на някоя от функциите на API от по-ниско ниво, защото това изглежда като вид заявка за работа, която трябва да яде за закуска. Благодаря предварително!


person Jez    schedule 24.05.2015    source източник
comment
За подход без sdk можете да го направите с това: github.com /Noitidart/AysncZip/blob/master/bootstrap.js#L515   -  person Noitidart    schedule 25.05.2015
comment
може би трябва да прегледате необработената http заявка от страната на сървъра, за да видите какво пристига там. можете също да използвате кутия с инструменти на браузъра, за да проверите заявките на клиента страна.   -  person the8472    schedule 25.05.2015


Отговори (1)


API на заявката не изпраща променливата при отваряне на раздела, вместо това прави втора заявка към същия URL адрес. Проверете регистрационните файлове на вашия сървър или конзолата на браузъра, трябва да виждате две заявки всеки път, когато щракнете върху този бутон.

person therealjeffg    schedule 25.05.2015
comment
благодаря, сега виждам, че първо отваря раздела и така променливата не се изпраща, когато страницата се зареди. И така, как да променя кода си, така че да изпраща POST данните едновременно със зареждането на страницата? Мога лесно да направя това с GET данни, като ги залепя в края на URL адреса, но това го излага на потребителя, което не е желателно - person Jez; 25.05.2015
comment
Няма начин да направите това, доколкото знам, просто използвайки API на заявката. Хак около него би бил да се отвори раздел с празна страница, съдържаща скрит формуляр, който се изпраща веднага щом бъде зареден. Това ще създаде кратка светкавица, но ще работи. - person therealjeffg; 27.05.2015
comment
@canuckstani благодаря за помощта, в крайна сметка добавих данните към URL адреса и използвах get, защото изглеждаше по-просто и не предизвика никакви странични ефекти - person Jez; 29.05.2015
comment
Докато се предпазвате от повторение, например не променяте данни при всяка заявка, нали? - person therealjeffg; 29.05.2015
comment
Правилно - нищо не се променя, просто добавям същата променлива заедно с всички други GET променливи, които вече са били в URL адреса - person Jez; 31.05.2015
comment
... въз основа на някакъв код, публикуван от вас в отговор на напълно различен запитване за блокиране на уебсайтове - person Jez; 31.05.2015