这是我无法开始工作的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移动到全局范围。感谢所有回复。
答案 0 :(得分:4)
这里的问题是函数blackBackground
在全局范围内不可用。
您可以通过声明这样在全局范围中公开该函数:
window.blackFunction = function(){ .. }
...或者在ajax配置中使用匿名函数:
jsonpCallback: function(result){ .. }
我推荐后者,因为它会让你的全球范围变得更长一点:)
答案 1 :(得分:2)
“这是我的JSONP”
那是JSON,而不是JSONP。
由于您指定了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"
}
})
答案 2 :(得分:2)
摘下单引号
jsonpCallback: blackBackground
答案 3 :(得分:1)
<击> dataType: "jsonp"
击>
不是有效的数据类型。要执行jsonp,您需要将callback=?
添加到URL查询字符串
url: 'http://localhost:3000/someurl?callback=?',