【发布时间】:2016-08-25 18:16:19
【问题描述】:
我正在开发一个小的概念验证网络应用程序,它应该向服务器(SAP ABAP 系统)发送一个 GET 请求。服务器提供 ODATA REST 服务。当我将服务的 URI 粘贴到浏览器的地址栏中时,所需的内容会立即显示出来。但是当我尝试通过 webapp(使用 jQuery for AJAX)发出请求时,会出现与 CORS 相关的问题:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:XXXXX' is therefore not allowed access. The response had HTTP status code 401.
可以在post 中找到我在 HTTP 请求中遇到的代码和其他问题。 我不明白为什么来自浏览器(或提琴手)的请求似乎没有问题,但是一旦我从应用程序(顺便说一句在本地托管)发送请求,就会出现 CORS 问题。仅供参考,我无法访问服务器端代码,因此无法编辑“Access-Control-Allow-Origin”部分。
【问题讨论】:
-
这里问了同样的问题,也许它与您的问题相似。 stackoverflow.com/questions/18642828/…
-
是的,但人们似乎只是通过在响应头中添加“Access-Control-Allow-Origin: *”来解决这个问题。正如我所说,我无法访问任何服务器端代码。
-
那不行,我们必须允许服务器端的跨域请求才能接受跨域请求。
-
但是为什么直接通过浏览器或 fiddler 请求资源而不是跨域请求呢?我很困惑...
-
@doktormatte - 当您通过浏览器/fiddler 请求时,您点击的是api_domian/api,这很好;但是当您从在您的域中运行的应用程序中点击它时,例如 localhost 或 http;yourdomain -> 这使得它跨域,因为您从不同的域请求它
标签: javascript jquery ajax cors