【问题标题】:Cross domain ajax request using JSONP使用 JSONP 的跨域 ajax 请求
【发布时间】:2013-03-20 01:40:17
【问题描述】:

我需要在我的应用程序中从其他域获取数据。我正在尝试使用 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 请求错误处理程序的窗口。又怎么了?

【问题讨论】:

    标签: jquery cross-domain jsonp


    【解决方案1】:

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

    callbackFunc("aaa");
    

    【讨论】:

    • 我应该使用 jsonp 总是返回 javascript 吗?像 public string Test2() { return "SomeFunction(aaa);"; }
    • 我使用了简单的 javascript(参见 Edit1)但问题仍然存在
    • Test2 仍然无效。 jquery添加的
    • 谢谢,您向我展示了一个解决方案。但是在出现奇怪的问题之后(见Edit2)
    • stackoverflow.com/questions/14255502/…。我不知道,但 GET 方法应该接受“回调”参数并发出回调(...)之类的代码。
    猜你喜欢
    • 2023-04-03
    • 2012-07-29
    • 1970-01-01
    • 2013-10-29
    • 2013-11-09
    • 2013-06-19
    • 1970-01-01
    • 2012-09-08
    相关资源
    最近更新 更多