为什么ajax请求与www工作?

问题描述:

我有以下代码:为什么ajax请求与www工作?

$.ajax({ 
     url: frametarget, 
     dataType: 'html', 
     method: 'GET', 
     success: function(data){ 
      // $("#result").html(data[0].title); 
      console.log(data); 
     }, 
     error: function(error){ 
       console.log(error); 
     } 
    }); 

现在如果frametarget =“www.skysports.com”的称呼是成功的,但使用skysports.com调用失败?

我正在对两个URL进行跨域调用,所以我预计都会失败。

+0

好吧,首先你需要知道它为什么失败。寻找你的开发工具寻找线索。 –

+1

任何跨域调用都会首先发送OPTIONS请求来检查服务器是否接受这样的请求。似乎www.skysports.com设置为接受,但skysports.com不接受。也许有从skysports.com永久重定向到www.skysports.com导致选项失败。 – Zefiryn

+0

好吧,不,只有某些跨域请求发送OPTIONS请求。假设www和非www都是跨域的,则更改网址不会影响它是否发送OPTIONS预检。 –

对于http://www.skysports.com此响应标头允许跨域请求:Access-Control-Allow-Origin: *

对于http://skysports.com响应中没有CORS标头,因此浏览器拒绝该请求。

有关更多信息,请参阅MDN HTTP access control (CORS)

+0

换句话说,这是这个特定第三方网站的配置问题,对不对? –

+0

对。请求'skysports.com'返回一个'301'重定向到'www.skysports.com'没有CORS头。 – Josa

+0

感谢Josa确认其他人提到的内容。 –