asp.net - JSONP回调方法未定义

标签 asp.net jquery ajax greasemonkey jsonp

我正在尝试在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"] 来获取它

但是我的成功函数从未被调用,并且 Firebug 控制台给我一个错误,说 jsonp1276109314602 is not defined .

我做错了什么?

注意 我正在通过 craigslist 页面上的 Greasemonkey 脚本进行此调用。这是一个跨域请求,但我可以看到该请求实际上正在发送到服务器并返回一个良好的响应,但无论出于何种原因,当响应返回时,jquery 创建的已注册回调似乎不存在。如果我从 craigslist 页面在 firebug 控制台中运行该脚本,则效果很好,但如果从 Greasemonkey 脚本运行该脚本,则效果不佳。

最佳答案

您是否已经尝试过:

$.ajax({
    url: "http://mydomain.com/MyWebService",
    data: { authkey: "temphash" },
    type: "get",
    dataType: "jsonp",
    cache: false,
    success: function(data) {
        console.log(data);
    }
});

来自docs :

"jsonp": Loads in a JSON block using JSONP. Will add an extra "?callback=?" to the end of your URL to specify the callback.

我没有检查 jQuery 的源代码,但除非您为 dataType 选项指定 jsonp,否则回调函数可能不会创建。

关于asp.net - JSONP回调方法未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3008960/

相关文章:

c# - 如何从 ASP.NET 调用具有多个输入值的 MySQL 存储过程

asp.net - 伪造 MVC Server.Transfer : Response. End() 不会结束我的线程

javascript - 在php中访问从ajax传递的数组

javascript - drupal 8 在#AJAX 事件后调用 JavaScript 函数

javascript - 在 View 和模板中使用 django ajax uploader

php - ajax 回调中出现 NaN 错误

c# - 如何在后端获取HtmlControl对象的HTML

asp.net - 插入 nvarchar(max) 字段时出现截断字符串数据错误

jquery - 如何使用按钮在两个 div 元素之间切换

javascript - 使用 css3 滑动图像