0

我需要在我的应用程序中从其他域获取数据。我正在尝试使用 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>"); 
}

但是有同样的问题

编辑2: 再次嗨!我被告知工作解决方案,但在我运行它后出现问题。

 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 请求错误处理程序的窗口。又怎么了?

在此处输入图像描述

4

1 回答 1

1

你从哪里得到这个错误?“aaa”不是有效的 JavaScript。要使用 jsonp,您应该返回类似

callbackFunc("aaa");
于 2013-03-18T20:01:36.810 回答