【发布时间】:2011-03-01 20:08:24
【问题描述】:
我正在尝试在greasemonkey 脚本中使用jquery 使jsonp 回调正常工作。这是我的jQuery:
$.ajax({
url: "http://mydomain.com/MyWebService?callback=?",
data: { authkey: "temphash" },
type: "get",
dataType: "json",
cache: false,
success: function(data) {
console.log(data);
}
});
在我的网络服务 (asp.net) 中,我返回内容类型为 application/javascript 的响应。服务器实际发回的响应是:
jsonp1276109314602({"message":"I'm getting tired of this not working"})
jsonp1276109314602 方法名是 jquery 随机生成的,我用Request.QueryString["callback"] 抓取它
但是我的成功函数从未被调用,并且萤火虫控制台给我一个错误说jsonp1276109314602 is not defined。
我做错了什么?
注意 我是从 craigslist 页面上的一个greasemonkey 脚本打这个电话的。这是一个跨域请求,但我可以看到该请求实际上正在发送到服务器并返回一个良好的响应,但是无论出于何种原因,当响应返回时,jquery 创建的注册回调似乎不存在。如果我从 craigslist 页面在 firebug 控制台中运行脚本,它可以正常工作,但从greasemonkey 脚本运行时则不行。
【问题讨论】:
-
您是在 GreaseMonkey 脚本中嵌入 jQuery 还是单独加载?
-
... 或者,您正在增强的页面上是否已经提供了 jQuery?
-
我已经通过greasemonkey脚本加载了它
-
你可以使用jsonp解决这个问题。请点击下面的链接。该站点还包含演示代码。 http://www.onlinesolutionsdevelopment.com/blog/web-development/javascript/jsonp-example/希望这能解决你的问题。
标签: asp.net jquery ajax greasemonkey jsonp