我正在尝试使用jquery在greasemonkey脚本中获取jsonp回调。以下是我的jquery代码:
$.ajax({
url: "http://mydomain.com/MyWebService?callback=?",
data: { authkey: "temphash" },
type: "get",
dataType: "json",
cache: false,
success: function(data) {
console.log(data);
}
});
在我的WebService(asp.net)中,我返回的响应的内容类型是application/javascript
。服务器实际发送回的响应是:
jsonp1276109314602({"message":"I'm getting tired of this not working"})
jsonp1276109314602
方法名是由 jQuery 随机生成的,我使用 Request.QueryString["callback"]
获取它。然而,我的成功函数从未被调用,firebug 控制台显示一个错误,指出
jsonp1276109314602 未定义
。我做错了什么?
注意:我正在从 craigslist 页面的 greasemonkey 脚本中进行此调用。这是一个跨域请求,但我可以看到请求实际上已经到达服务器并返回了一个良好的响应,但由于某种原因,jquery 创建的注册回调在响应返回时似乎不存在。如果我从 craigslist 页面的 firebug 控制台运行脚本,则可以正常工作,但是从 greasemonkey 脚本运行时则不行。