1

これは、作業できない私のjqueryスニペットです。jsonpCallback を介して blackBackground() を呼び出そうとしています

$(document).ready(function()
{


    function blackBackground(data, status)
    {
        console.log("black background");
            //I want to eventually change the body style to black
    }

    $.ajax({
        url: 'http://localhost:3000/someurl',
        dataType: 'jsonp',

        jsonp: false,
        jsonpCallback: 'blackBackground'
    });

});

アップデート:

jsonpCallback: 'blackBackground'

jsonpCallback: blackBackground

blackBackground をグローバルスコープに移動するとともに。すべての応答に感謝します。

4

4 に答える 4

4

ここでの問題は、関数blackBackgroundがグローバル スコープで使用できないことです。

次のように宣言することで、グローバルスコープで関数を公開できます。

window.blackFunction = function(){ .. }

...または ajax 構成で無名関数を使用します。

jsonpCallback: function(result){ .. }

後者をお勧めします。これにより、グローバルスコープが少し長く整頓されます:)

于 2013-03-11T19:47:05.063 に答える
2

一重引用符を外す

jsonpCallback: blackBackground
于 2013-03-11T20:11:04.507 に答える
2

「これが私のJSONPです」

それは JSONP ではなく JSON です。

を指定jsonp: falseしたので、グローバル スコープでコールバックを自分で定義する必要があります。

function blackBackground(data, status)
{
    console.log("black background");
        //I want to eventually change the body style to black
}
// document ready isn't really needed here either, but you can make that choice.
$(document).ready(function()
{   
    $.ajax({
        url: 'http://localhost:3000/someurl',
        dataType: 'jsonp',
        jsonp: false,
        jsonpCallback: 'blackBackground'
    });

});

サーバーは次のように応答する必要があります。

blackBackground({
    "name": "async-poll",
    "description": "api for asynchronous polls",
    "version": "0.0.1",
    "dependencies": {
        "express": "3.x"
    }
})
于 2013-03-11T19:48:28.630 に答える
1

dataType: "jsonp"

有効な dataType ではありません。jsonp を実行するcallback=?には、URL クエリ文字列に追加する必要があります

url: 'http://localhost:3000/someurl?callback=?',

于 2013-03-11T19:51:32.540 に答える