gpt4 book ai didi

javascript - 没有 CORS 或 JSONP 的跨域请求

转载 作者:数据小太阳 更新时间:2023-10-29 03:49:51 28 4
gpt4 key购买 nike

我知道以前有人问过这个问题,但没有一个答案对我有用!我正在做一个学校项目,我想获取我学校服务器上的动态计划文件返回的 HTML(为我的项目解析它)。

我想要的 HTML 页面是:https://telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched

我认为学校服务器文件没有启用 CORS,我不知道它是否支持 JSONP...

如何设置跨域请求以从此页面获取 HTML?

我试过:

$.ajax({
type:'POST',
url: 'https://telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched',
headers: {
'Access-Control-Allow-Origin': '*'
},
contentType: 'text/html',
crossDomain:true
}).done(function( data ) {

});

我得到了错误:

XMLHttpRequest cannot load https://telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 501.

当我添加时:

dataType:'jsonp'

我得到错误:

GET https://telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched?callback=jQuery21108736664191819727_1416964243449&_=1416964243450 400 (Bad Request) jquery.min.js:4send jquery.min.js:4n.extend.ajax jquery.min.js:4(anonymous function)

非常感谢任何帮助!

最佳答案

浏览器强制执行 "same-origin"访问控制,除非站点明确允许跨源请求(通过 CORS 或 JSONP)。因此,如果您尝试访问的站点不允许跨源请求,那么您无法仅使用浏览器直接从该站点获取数据。浏览器正在执行目标站点请求的同源限制。

这根本不是服务器的安全性,因为有很多方法可以解决它。它仅适用于来自浏览器的一种特定类型的访问(尽管一种特定类型的访问保护很有用)。

这意味着要将数据导入浏览器,您需要使用某种可以为您获取数据的第三方代理(浏览器除外)。最常见的两种方法是:

  1. 您自己的服务器。您向自己的服务器发出请求,以从其他服务器获取一些内容。然后,您的服务器从另一台服务器获取数据,并在浏览器中将其返回给您。

  2. 代理服务器。有一些预配置的代理服务器专为执行选项 #1 中描述的操作而构建。您可以使用代理服务或安装自己的代理服务器来为您执行此操作,或者配置您自己的 Web 服务器以具有此功能。

因此,您无法绕过协作浏览器的跨源限制。但是,您可以从服务器绕过它们。这是因为 COR 限制仅在浏览器中实现。它们不是服务器强制执行的限制。浏览器询问目标服务器正在使用哪些 COR 策略,并仅在浏览器中强制执行这些策略。向该服务器发出请求的其他一些服务器不需要关注 COR 策略。

关于javascript - 没有 CORS 或 JSONP 的跨域请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27139725/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com