当前位置: 首页 > 面试题库 >

jQuery Ajax请求使用jsonp错误

公良安邦
2023-03-14
问题内容

我正在编写一个应用程序,我需要从另一台服务器访问客户端中的一些json数据。由于跨域问题,我计划使用jsonp。jQuery允许我使用$
.getJSON()方法来执行此操作,但是,我无法判断该方法是否失败(即服务器没有响应或其他原因)。所以我尝试了使用$
.ajax来获取JSON数据的方法。但这不起作用,我也不知道该怎么做。这是显示我的问题的示例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
      <meta http-equiv="Content-type" content="text/html; charset=utf-8">
      <title>TEST</title>
      <script type="text/javascript" src="scripts/jquery-1.5.1.min.js"></script>
      <script type="text/javascript">
           $(document).ready(function() {
        $('#button_detect').click(function(){
            var feedApiAjax = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=';
            var feedApiGetJSON = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q=';
            var feedUrl = 'http://www.engadget.com/rss.xml';

            $.ajax({
                url: feedApiAjax + feedUrl,
                datatype: 'jsonp',
                success: function(data) {
                    console.log('$.ajax() success');
                },
                error: function(xhr, testStatus, error) {
                    console.log('$.ajax() error');
                }
            });

            $.getJSON(
                feedApiGetJSON + feedUrl,
                function(data) {
                    console.log('$.getJSON success');
                });
        });
    });
      </script>
 </head>
 <body>
      <div id="button_detect">CLICK ME!!!!</div>
 </body>

如果使用此代码创建一个网页,然后单击“ Click Me” div,您将看到$ .getJSON请求正在运行,而$ .Ajax请求却不在。我尝试放置/删除“
callback =?” tg,使用了“ jsonp”和“ json”数据类型,但是这些都不起作用。

关于我可能做错了什么的任何想法?

干杯!


问题答案:

我之前遇到此错误,并在使用jquery-JSONP之后解决了

[例]

$.getJSON('http://server-url/Handler.ashx/?Callback=DocumentReadStatus',
  {
      userID: vuserID,
      documentID: vdocumentID
  },
  function(result) {
      if (result.readStatus == '1') {
          alert("ACCEPTED");
      }
      else if (result.readStatus == '0') {
          alert("NOT ACCEPTED");
      }
      else {
          alert(result.readStatus);
      }
  });


 类似资料:
  • 问题内容: 我正在发出ajax jsonp请求,但是失败错误处理无法正常工作。如果请求为404或500,则不会处理该错误。 我一直在四处寻找答案,但找不到任何东西。http://code.google.com/p/jquery- jsonp/ 似乎有一种解决方案,但是我找不到任何有关如何使用它的示例。 问题答案: 处理错误的两种方法 跨域JSONP请求没有错误处理。使用Github https:/

  • 我在本地服务器上找到了它失败的代码: 在我看来,它似乎不能获得或?

  • 问题内容: 我正在使用JSONP ajax调用从其他域加载某些内容,并且如果用户在按钮上造成“ mouseover”,则将执行所有这些操作。 我可以将$ .ajax()调用return捕获为xhr对象,并在用户每次导致“ mouseover”时使用它中止ajax请求。但是仍然会调用JSONP回调函数,这会导致错误,并且我认为这是因为xhr.abort()方法不会阻止调用回调函数。 我尝试用try

  • 问题内容: 我想用以下代码用jquery ajax解析JSON数组数据: 我的JSON数据是: 但是我没有任何输出…任何人请帮忙… 问题答案: 概念解释 您是否正在尝试进行跨域AJAX调用?意思是,您的服务不在同一Web应用程序路径中托管吗?您的Web服务必须支持方法注入才能执行JSONP。 您的代码看起来不错,并且如果您的Web服务和Web应用程序托管在同一域中,则该代码应该可以正常工作。 当您

  • 由于集群环境中的跨域问题,我试图使用jsonp数据类型执行ajax请求。 我可以将jsonp请求映射到没有@刚体参数的方法,但是当我尝试用@刚体参数实现一个请求映射时,我会得到一个415不支持的媒体类型错误。 通常,当我遇到这个问题时,是由于一些属性在发布的json对象和它在Spring中映射到的Java对象之间没有正确映射。但我能找到的唯一区别是,使用jsonp它添加了一个名为callback的

  • 本文向大家介绍使用AngularJS 跨站请求如何解决jsonp请求问题,包括了使用AngularJS 跨站请求如何解决jsonp请求问题的使用技巧和注意事项,需要的朋友参考一下 今天写东西的时候遇到了 一种情况 ,因为用的不是自己公司人员写的接口 ,而我要写的东西是抓别的网页上的接口 所以出现了 一下这种情况 用 get请求出现拦截跨站请求资源  以下是解决办法, 这是我的请求: 我在浏览器模板