我需要从其他域获取我的应用程序的数据。我想使用jsonp,但每次我有错误'80020101'
这是我在'其他域'的代码(ASP.NET MVC 4)
public ActionResult Test()
{
return Json(new { foo = "bar", baz = "Blech" }, JsonRequestBehavior.AllowGet);
}
public string Test2()
{
return "aaa";
}
这是我发送请求的ajax方法
$.ajax({
url: 'https://192.168.0.61/CryptoProTestTool/Home/Test2/',
type: 'GET',
dataType: 'jsonp',
error: function(xhr, status, error) {
alert("error");
},
success: function(json) {
alert("success");
}
});
怎么了?为什么我在这个简单的例子中总是有错误?我对Test和Test2数据有疑问......
手动测试显示服务发送数据
编辑1:我收到错误消息“无法完成操作。错误80020101.”在ajax请求的错误功能。 我试着像这样改变Test2
public ActionResult Test2()
{
return Content("<script language='javascript' type='text/javascript'>alert('Hello world!');</script>");
}
但是有同样的问题
EDIT2: 你好,我们又见面了! 我被告知工作解决方案,但在我运行后问题出现。
public ActionResult Test2()
{
return Content("MyMethod('test12345');");
}
和Javascript代码:
function onPageLoad() {
CheckCryptoProAvailable();
}
function CheckCryptoProAvailable() {
$.ajax({
url: 'https://192.168.0.61/CryptoProTestTool/Home/Test2/',
type: 'GET',
dataType: "jsonp",
error: function(xhr, status, error) {
alert("error = " + error.toString());
},
success: function(json) {
}
});
}
function MyMethod(testValue){
alert(testValue);
}
一切正常,MyMethod在请求后被调用。但之后我从ajax请求错误处理程序中看到一个窗口。又怎么了?
答案 0 :(得分:1)
你在哪里得到这个错误? “aaa”不是有效的javascript。要使用jsonp,你应该返回类似
的内容callbackFunc("aaa");