我正在尝试向使用会话密钥进行授权的外部应用程序服务器发送简单的CORS请求.
$.ajax({
type: "GET",
url: "https://192.168.1.72:8442/api/file/",
headers: {"Authorization": "3238562439e44fcab4036a24a1e6b0fb"}
});
Run Code Online (Sandbox Code Playgroud)
它在Firefox 18,Opera 12.12和Rekonq 2.0(也使用WebKit)中工作正常但在Google Chrome中无效(尝试过版本21和24).在Google Chrome中,它显示OPTIONS资源无法在Network Inspector中加载,并且应用程序服务器未收到任何请求.我试过jQuery 1.8.3和1.9.0.
Request URL:https://192.168.1.72:8442/api/file/
Request Headers
Access-Control-Request-Headers:accept, authorization, origin
Access-Control-Request-Method:GET
Cache-Control:no-cache
Origin:https://192.168.1.72:8480
Pragma:no-cache
Run Code Online (Sandbox Code Playgroud)
如果我从请求中删除标题,那么我也会在Google Chrome中收到401,并且在应用服务器上禁用授权的情况下,它可以访问该资源.发送哪个标头无关紧要.我只能发送的标题是{"Content-Type":"plain/text"}.所有其他标题名称/值都会在Google Chrome中出错,但可以在我上面提到的所有浏览器中使用.
为什么Google Chrome无法处理CORS请求中的标头?
我有结构:
struct mat4 {
float m[16];
mat4();
...
float *getFloat();
}
float *mat4::getFloat() {
return m;
}
Run Code Online (Sandbox Code Playgroud)
现在我想从新创建的矩阵r中使m等于m:
void mat4::rotate(vec3 v) {
mat4 r, rx, ry, rz;
...
matrix calculations
...
m = *r.getFloat();
}
Run Code Online (Sandbox Code Playgroud)
但这给了我错误"将'浮动'分配给'浮动[16]'的不兼容类型"我搜索谷歌并尝试了不同的方法但到目前为止没有成功.请告诉我怎么办?