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

跨域jQuery获取

百里阳平
2023-03-14
问题内容

我看到了一些使用Ajax进行跨域的示例,但是它不起作用。

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    </head>
    <body>
        <script type="text/javascript" >
            $(document).ready(function () {
                var url = "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=AssasNet&include_rts=1";

                $.get(url, function (data) {
                    console.log(data)
                    alert(data);
                });
            });
        </script>
    </body>
</html>

我尝试使用chrome并给出以下错误:

XMLHttpRequest cannot load http://api.twitter.com/1/statuses/user_timeline.json?screen_name=AssasNet&include_rts=1. Origin null is not allowed by Access-Control-Allow-Origin.

问题答案:

您无法使用,$.get因为它会进行ajax调用,该调用将是跨源的,因此被Same Origin
Policy
阻止,并且您尝试访问的Twitter
API不支持跨源资源共享(或者如果它支持,允许,它不允许原点nullhttp://jsbin.com,这是我尝试过的)。

该API确实支持JSONP(这不是真正的Ajax调用),因此只需将更$.get改为$.ajax指定即可JSONP

$.ajax({
  url: url,
  dataType: "jsonp",
  success: function (data) {
    console.log(data)
    alert(data);
  }
});

现场示例 | 资源



 类似资料:
  • 问题内容: 这是两个页面,test.php和testserver.php。 test.php testserver.php 现在我的问题是:当这两个文件都在同一服务器上(本地主机或Web服务器)时,它可以工作并被调用;如果它在不同的服务器上,则意味着Web服务器上的testserver.php和localhost上的test.php,它不起作用,并且正在执行。即使ajax内的URL更改为http:

  • 问题内容: 这是两个页面,test.php和testserver.php。 test.php testserver.php 现在我的问题是:当这两个文件都在同一服务器上(本地主机或Web服务器)时,它可以工作并被调用;如果它在不同的服务器上,则意味着Web服务器上的testserver.php和localhost上的test.php,它不起作用,并且正在执行。即使ajax内的URL更改为http:

  • 本文向大家介绍jQuery使用ajax跨域请求获取数据,包括了jQuery使用ajax跨域请求获取数据的使用技巧和注意事项,需要的朋友参考一下 跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免的需要进行跨域操作,所以跨域能力也算是前端工程师的基本功

  • 问题内容: 对于一个项目,我需要获取其他不同域的网页的源代码。我尝试了以下代码: 我仍然没有得到任何结果,只是一个空白的警告框。 问题答案: 默认情况下,所有浏览器都限制跨域请求,您可以使用YQL作为代理来解决此问题。在此处查看指南:http://ajaxian.com/archives/using-yql-as-a- proxy-for-cross-domain-ajax

  • 问题内容: 我正在尝试访问另一个域中的Web服务,但它不返回任何内容。后来我发现这是一个跨域访问的问题。 我在网上搜索了很多文章,但像我这样的新手都看不懂。:( 有人可以帮助我如何访问Web服务吗? 以下是我的代码。 问题答案: 浏览器不允许跨域AJAX调用。仅允许跨域JSONP请求。 要使用JSONP请求,您必须将属性更改为。但是,这意味着您不能请求XML,而只能请求JSONP。 关于JSONP

  • 问题内容: 我正在尝试向API进行身份验证,该API仅允许您使用带有JSON的POST作为表单数据进行身份验证,格式为{“ username”:“ myusername”,“ password”:“ mypassword”}。 我已经尝试了两天,以使其与jQuery一起使用,但是由于它是跨域的,所以我遇到了问题。我该怎么做? 错误信息: 到目前为止的代码: 总结一下: API仅接受POST进行身份