Html 跨域ajax请求

Html 跨域ajax请求,html,ajax,jquery,asp.net-ajax,Html,Ajax,Jquery,Asp.net Ajax,我想从跨域URL获取HTML响应页面 为此,我使用ajax请求作为 $.ajax({ type: 'GET', url: "http://wcidevapps.com/salescentral/idisk/0001000383/iDisk", dataType: "json", success: function (response) {

我想从跨域URL获取HTML响应页面

为此,我使用ajax请求作为

 $.ajax({
            type: 'GET',
            url: "http://wcidevapps.com/salescentral/idisk/0001000383/iDisk",
            dataType: "json",
            success: function (response) {
                $(response).find('li a').each(function () {
                    listHref.push($(this).attr('href'));
                });

            }
        });
但在请求后,它不会回复任何结果。

检查文档:

跨域(默认值:对于相同域请求为false,对于跨域请求为true)

类型:布尔型

如果希望在同一个域上强制执行跨域请求(如JSONP),请将crossDomain的值设置为true。例如,这允许服务器端重定向到另一个域。(新增版本:1.5)


我怀疑您看到了这个问题,因为您请求的页面没有响应json(p)响应,而是响应重定向到:

http://wcidevapps.com/salescentral/idisk/0001000383/iDisk/
(注意后面的斜杠)

然后返回内容类型:

Content-Type:text/html;charset=ISO-8859-1
编辑:如果您打算跨域检索上述站点的数据,以便通过脚本进行进一步解析,我建议您选择以下选项之一:

假设1:您控制服务器“”上的页面

在这种情况下,您有两个选项:要么将CORS头“Access Control Allow Origin:*”添加到响应中(并使用数据类型:“html”配置客户端ajax()调用),要么创建一个特殊的JSON(p)页面,该页面提供与JSON相同的数据(带填充)(并像OP中那样配置客户端ajax()调用,使用数据类型:“jsonp”)

假设2:您无法控制服务器上的页面


在这种情况下,我能想到的唯一选择是在您控制的站点上设置代理。让该代理“代理”对“”的请求/响应,但将CORS标头“Access Control Allow Origin:*”添加到响应中(并使用数据类型:“html”配置客户端ajax()调用)

如果您使用的是asp.net web服务,则需要将其添加到webconfig文件中

<system.webServer>
    <directoryBrowse enabled="true"/>
<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
  </customHeaders>
</httpProtocol>
</system.webServer>


函数名函数名(){
$.ajax({
网址:'http://wcidevapps.com/salescentral/idisk/0001000383/iDisk',
键入:“GET”,
数据类型:“json”,
标题:{
//如果他们有一些头请求或数据,则写入
},
跨域:是的,
成功:函数(数据、文本状态、xhr){
控制台日志(数据);
},
错误:函数(xhr、textStatus、errorshown){
console.log(错误抛出);
}
});
}   

您是否启用了CORS?啊,好的,我明白了。因此,通常情况下,JavaScript不允许从其他域加载内容。这就是所谓的。但是现在,你可以通过配置CORS或者使用一些技巧来解决这个问题,比如不要担心CORS,因为JSONP并不是一个真正的ajax请求,你不需要它。问题是,您用于请求的地址根本不返回JSONP?您尝试过任何答案吗?是的,我尝试过这个答案,但不起作用它不起作用,因为数据没有以JSON返回,并且给出异常“Uncaught SyntaxError:Unexpected token<”,您也可以在我给定的站点urlyes上尝试这个,@Rahul,所以我想你唯一的选择就是我在编辑的答案中列出的为什么启用directoryBrowse?任何理由
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
  <script type="text/javascript">
    function NameAFunctionName() {
        $.ajax({
          url: 'http://wcidevapps.com/salescentral/idisk/0001000383/iDisk',
          type: 'GET',
          dataType: 'json',
          headers: {
            //WRITE IF THEIR HAVE SOME HEADER REQUEST OR DATA
          },
          crossDomain: true,
          success: function (data, textStatus, xhr) {
            console.log(data);
          },
          error: function (xhr, textStatus, errorThrown) {
            console.log(errorThrown);
          }
        });
    }   
</script>