没有www,jQuery ajax不适用于url

时间:2010-03-31 18:43:00

标签: javascript ajax url jquery

如果url没有www,则下面的jQuery ajax脚本无法在我的网站上运行。我检查了Firebug并且它没有发送ajax调用。

$.ajax(
    {
        type: "POST",
        url: "http://www.mysite.com/beta/products.php",
        data: "page_type=index&sort=relevancerank&CartId=<?php echo $CartId;?>&HMAC=<?php echo $HMAC;?>",
        success: function(msg)
        {
            $('#content-holder').html(msg);

        },
        error: function()
        {
            alert("An error occurred while updating. Try again in a while");
        }
    });

4 个答案:

答案 0 :(得分:6)

我假设调用文档URL被引用为“mysite.com”或“subdomain.mysite.com”? XMLHttpRequest对象(支持jQuery Ajax调用的引擎)无法执行“跨域”请求。子域(例如“www”)符合条件。确保您的请求属于同一子域。

答案 1 :(得分:4)

您无需提供绝对网址,只需提供一个relative即可,无论您的网页是否加载了 www。子网域,它都能正常运行不:

//...
    type: "POST",
    url: "/beta/products.php",
//...

答案 2 :(得分:0)

您的服务器可能会重定向到“www”域吗?这可能只是同源策略阻止您的外部页面访问其他域。

答案 3 :(得分:0)

万维网。只是一个命名约定 - ajax将加载到任何可以通过dns查找的地址,或者只要有服务器响应请求,它就可以在ip地址上运行。

但是 - 出于安全原因,您的页面位置和ajax请求需要位于同一个域中。要绕过此限制,您需要使用名为JSONP

的东西