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

jQuery getJSON无法跨站点工作

萧懿轩
2023-03-14
问题内容

我有一段可捕获JSON数据的JavaScript。在本地执行时,一切似乎都可以正常工作。但是,当我尝试从其他站点访问它时,它不起作用。

这是脚本。

$(function(){
    var aT = new AjaxTest();
    aT.getJson();
});

var AjaxTest = function()
{
    this.ajaxUrl = "http://mydeveloperpage.com/sandbox/ajax_json_test/client_reciever.php";

    this.getJson = function(){
        $.getJSON(this.ajaxUrl, function(data){
            $.each(data, function(i, piece){
                alert(piece);
            });
        });
    }
}

您可以在“
http://mydeveloperpage.com/sandbox/ajax_json_test/
”中找到完全相同的文件的副本。

任何帮助将不胜感激。

谢谢!


问题答案:

从文档中:

  • 由于浏览器安全性的限制,大多数“ Ajax”请求都受相同的原始策略约束; 该请求无法成功从其他域,子域或协议检索数据。

  • 脚本和JSONP请求不受相同的原始策略限制。

您将需要使用JSONP来超越同源策略。jQuery可以使其无缝(请参见上述文档页面的其余部分)。



 类似资料:
  • 问题内容: 我想提供一段Javascript代码,该代码可在包含Javascript的任何网站上运行,但是它始终需要在托管Javascript的服务器上获取更多数据(甚至修改数据)。我知道出于明显的原因有一些安全限制。 考虑xyz.com上托管的index.html,其中包含以下内容: some.js能够使用XMLHttpRequest将数据发布到abc.com吗?换句话说,因为我们从那里加载了J

  • 问题内容: 我需要从一个网站向另一个域中托管的REST Web服务发出AJAX请求。 尽管这在Internet Explorer中很好用,但是其他浏览器(例如Mozilla和Google Chrome)强加了更加严格的安全性限制,这些限制禁止跨站点AJAX请求。 问题是我无法控制站点所在的域或Web服务器。这意味着我的REST Web服务必须在其他地方运行,并且我无法采用任何重定向机制。 这是进行

  • 问题内容: 我正在尝试使用“ GWT请求”构建器发出“跨站点请求”,但我无法使其正常工作。如您所见,这是一个GWT示例项目的大部分内容,我已经浏览了https://developers.google.com/web- toolkit/doc/latest/tutorial/Xsite 。但是我仍然缺少一些东西。 我在这里发布代码。我在想什么..? 问题答案: 实际上,如果可以在Servlet Re

  • 大约6个月前,我创建了一个wordpress网站。一切都很好,直到几天前,我们开始在前端和后端看到Wordpress“白色死亡屏幕”。 经过大量调试尝试后,我们决定重新安装wordpress并保留旧的wp-内容文件。 现在,在尝试访问站点时可以看到这一点(wp_debug设置为false,因此理想情况下不应该发生)- > 警告:require(/home/vaidya/public_html/wp

  • 问题内容: 我有一个现有的jQuery插件,可以进行很多AJAX调用(主要是JSON)。我想知道最快允许它进行跨站点调用的方法,即$ .get和$ .post URL不会来自同一域。 我听说过JSONP,但是想知道是否有人可以给我一个具体的例子来介绍整个过程。如果可能,我希望对脚本进行最少的更改。我应该使用某种proxy.php吗? 感谢您的时间。 问题答案: JSONP将允许您进行跨站点调用。请

  • 只要应用程序获取不受信任的数据并将其发送到客户端(浏览器)而未经验证,就会发生跨站点脚本(XSS)。这允许攻击者在受害者的浏览器中执行恶意脚本,这可能导致用户会话劫持,破坏网站或将用户重定向到恶意站点。 下面我们借助一个简单图表了解这个漏洞的威胁代理,攻击向量,安全弱点,技术影响和业务影响。 威胁代理 - 内部/外部用户或管理员发送给系统的不受信任的数据。 攻击者的方法 - 发送不受信任的数据/基