【问题标题】:XMLHttpRequest cannot load when URL is with www当 URL 带有 www 时,XMLHttpRequest 无法加载
【发布时间】:2013-02-02 18:34:30
【问题描述】:

我已经在我的网站上使用 jQuery 实现了自动提示脚本。当浏览器使用 www(即www.xyz.com)加载我的网站时,搜索建议不起作用并在浏览器控制台中打印以下错误:

XMLHttpRequest 无法加载 http://xyz.com/json.php?json=true&limit=15&input=testing。起源 Access-Control-Allow-Origin 不允许http://www.xyz.com

我知道 jQuery / Chrome 不允许我进行跨域 AJAX 调用,但是当我在没有 www(即 xyz.com)的情况下访问我的网站时,一切正常。我怎么解决这个问题 ?有人对此有想法吗?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    您违反了same origin policy restriction

    根据此策略,http://www.xyz.comhttp://xyz.com 被视为跨域。

    要解决此问题,只需在您的 $.ajax() 请求中使用相对 url:

    $.ajax({
        url: '/json.php',
        ...
    });
    

    而不是绝对:

    $.ajax({
        url: 'http://xyz.com/json.php',
        ...
    });
    

    【讨论】:

    • 如果我使用简单的 javascript 访问会怎样?
    • 完全一样。您应该使用相对网址。您认为$.ajax() 方法在一天结束时会做什么?它在后台使用简单的 javascript 来实例化 XMLHttpRequest 对象并将其传递给 url。
    • 它对我不起作用:o!我更改为相对路径。我仍然面临同样的错误..
    • 这很奇怪。你能显示你的代码吗?通常,如果您使用相对 url,则永远不会遇到此类问题。
    • 我们可以在 GTALK 上继续这个吗?我的 ID 是 thakerhardiks@gmail.com ?
    猜你喜欢
    • 1970-01-01
    • 2011-04-19
    • 2011-11-01
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多