NOa*_*MTL 1 javascript django cors angularjs preflight
我试图向 REST api 发出请求。这是一个 CORS 请求。\n我的前端:Angular 1.5 (localhost:3000)\n我的后端:Django (*****.ddns.net)
\n\n所以我正在使用一项服务(由不想共享代码的人创建:(),即在真正的请求(预检)之前执行 OPTIONS 请求。准确地说,调用是通过解析选项进行的UI 路由器状态定义。\nDjango 有 CORS 允许 *.
\n\n这是我在 google chrome 中遇到的错误:
\n\nXMLHttpRequest cannot load https://****.net/api/myprofile. The request was redirected to 'https://*****.net/punchclock/api/myprofile/', which is disallowed for cross-origin requests that require preflight.\nRun Code Online (Sandbox Code Playgroud)\n\n如果我在控制器中执行经典的 $http 请求,它就可以工作。
\n\n这是我的 django 收到的请求:
\n\n+6655:5740d0f9:10|\nOPTIONS /punchclock/api//myprofile HTTP/1.0|\nHost:*****.net|\nConnection:close|\nPragma:no-cache|\nCache-Control:no-cache|\nAccess-Control-Request-Method:GET|\nOrigin:http%3a//localhost%3a3000|\nUser-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36|\nAccess-Control-Request-Headers:accept, authorization|\nAccept:*/*|\nReferer:http%3a//localhost%3a3000/dashboard|\nAccept-Encoding:gzip, deflate, sdch|\nAccept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.2\n-6655:5740d0f9:10\nRun Code Online (Sandbox Code Playgroud)\n\n这是我与邮递员一起执行时得到的响应(当我执行选项请求时,它正在与邮递员一起工作)
\n\nAccess-Control-Allow-Headers \xe2\x86\x92x-requested-with, content-type, accept, origin, authorization, x-csrftoken\nAccess-Control-Allow-Methods \xe2\x86\x92GET, POST, PUT, PATCH, DELETE, OPTIONS\nAccess-Control-Allow-Origin \xe2\x86\x92*\nAccess-Control-Max-Age \xe2\x86\x9286400\nAllow \xe2\x86\x92GET, HEAD, OPTIONS\nConnection \xe2\x86\x92keep-alive\nContent-Type \xe2\x86\x92application/json\nDate \xe2\x86\x92Sat, 21 May 2016 21:15:02 GMT\nServer \xe2\x86\x92nginx/1.6.2\nTransfer-Encoding \xe2\x86\x92chunked\nVary \xe2\x86\x92Accept\nX-Frame-Options \xe2\x86\x92SAMEORIGIN\nRun Code Online (Sandbox Code Playgroud)\n\n我认为这是 Django 方面的问题,我不知道。如果你有任何想法...(我需要了解很多关于 CORS 的知识...)
\n确保您定位的 URL 构造正确,并且您调用的路由末尾有一个尾部斜杠。正如这里提到的。所以而不是这个
'http://localhost:5000/auth'
Run Code Online (Sandbox Code Playgroud)
你会称之为
'http://localhost:5000/auth/'
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
10543 次 |
| 最近记录: |