我正在使用Jquery-JSONP
从ASP.NET页面进行跨域提取我的ASP.NET页面看起来像这样;
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("functionName({'test_param':12345});");
}
}
这是作为test.aspx
托管在我的服务器上的我现在正在使用localhost中的JQuery并尝试从test.aspx中获取数据;
$.ajax({
dataType: 'jsonp',
url: 'http://abc.com/GTalk/test.aspx?callback=?',
success: function () {
alert("Success");
},
error: function (x, y, z) {
alert("error" + x.responseText);
}
});
我收到错误x.responseText = "undefined"
错误z是Error: jQuery171008073005825281143_1328259709467
我无法弄清楚我在做什么错。我是新手。
感谢。
答案 0 :(得分:1)
在服务器端而不是“functionName”,您必须打印通过GET-params收到的函数名称回调 - 参数(在这种情况下为 jQuery171008073005825281143_1328259709467 )。 / p>
您无法对名称进行硬编码,每次请求都会有所不同)
答案 1 :(得分:0)
我并不是自称是专家,只是感兴趣的旁观者。
从上一篇文章看,测试工具是错误的,即您的页面。困难在于 - 你如何应对动态回调名称?我挖了一下,我发现了一个使用asmx webservices和httpmodules来获得你想要的东西的例子。
Accessing Remote ASP.Net webservices
如果我是你并且会将测试页重做为web服务(对不起我知道的非常WCF)并使用您自己的方法连接模块。在JsonHttpModule
内,看起来Write
方法正在进行有趣的工作,即它将响应写入包装在一个动态回调方法签名中,它从查询字符串中获取(其中JQuery会说的。)
不幸的是,看起来你需要做一些工作才能让它工作。可能会有更好的方式,但我找到的只是。