请问creator的 xmlHttpRequest 怎么设置请求头?
求示范代码
var httpRequest = cc.loader.getXMLHttpRequest();
httpRequest.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
如果我想在请求头里面额外加一个字段呢?
比如:“AppVersion”:“1.0.0”,
但是请求之后就会报这样的错误:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:7456' is therefore not allowed access. The response had HTTP status code 500.
看上去是跨域的问题,但是服务端暂时没有办法修改,作为客户端,我怎么修改呢?
我这样设置的: xhr.setRequestHeader(‘AppVersion’,‘1.0.0’);
这样请求之后,在浏览器里面的请求头中就看不到“Referer”这个字段了,所以请教各位,该怎么处理。
我目前没办法自己设置自定义的请求头字段!!求help或建议
跨域限制是浏览器做的, 没有办法, 但是原生平台是没有这个限制的.
测试的话你可以关闭浏览器的跨域限制, 或者让你们服务器包装一个 api 去做这件事情, 就是你请求你们服务器, 你们服务器请求那个地址, 然后把返回值给你发回来.
百度搜索Access-Control-Allow-Headers
然后跨域的花看你服务端用什么语言,几乎所有的语言都会提供跨域支持的第三方库
库的名称一般是 cros 之类的
或者你用nginx做反向代理来绕开跨域问题
啊,这个听起来好高端,我尝试去搜索一下,谢谢Thanks
谢谢你。请问“或者让你们服务器包装一个 api 去做这件事情, 就是你请求你们服务器, 你们服务器请求那个地址, 然后把返回值给你发回来.”这句话怎么详细理解呢?因为条件限制,我需要将新参数在请求头里面带过去,而并不是在现有的接口上面添加参数字段。
就是让你们后端去请求,头也是后端请求时加上,如果需要动态的头时,你请求你们后端时通过 get/post 传过去就可以
我大概明白你的意思了,你想让我把这个字段通过参数的形式,在发起请求的时候带过去吧
,但是由于某些我不知道的原因或者命令,现在只能通过请求头传过去,而不能为借口增加新的请求参数。哎
这个无解吗
浏览器发送post请求时,会先发一个options请求。服务器校验自定义header的时候,options请求不要校验,直接放行