如何在jqueryajax请求JSON的内部发送附加头

如何在jqueryajax请求JSON的内部发送附加头,jquery,ajax,json,cordova,http-headers,Jquery,Ajax,Json,Cordova,Http Headers,我正在尝试为我现有的web应用程序构建API,以便为该服务开发移动应用程序。目标是提供JSON提要,用于在cordova应用程序环境中显示内容 我的.ajax调用如下所示: $.ajax({ type: "POST", headers: { "Authorization" : '3d5cd0938b8db73d62e246e561c86f' }, data: { scat: false, mcat: 8,

我正在尝试为我现有的web应用程序构建API,以便为该服务开发移动应用程序。目标是提供JSON提要,用于在cordova应用程序环境中显示内容

我的.ajax调用如下所示:

$.ajax({
    type: "POST",
    headers: {
        "Authorization" : '3d5cd0938b8db73d62e246e561c86f'
    },
    data: { 
        scat: false, 
        mcat: 8, 
        page: 1 
    },  
    dataType: 'json', 
    url: "http://snake2.test-api/services/rest/v1/category/",
        success: function(data) {
            alert('OK');
        },
        error: function() {
            alert('error');
        },
    beforeSend: setHeader
});
理论上,设置是可行的,但我无法正确完成jQueryAjax请求。虽然Chrome中的“高级Rest客户端”提供了所需的JSON提要,但我的AjAX请求没有。通过查看API服务器的apache日志,可以发现头的外观与它们应该的外观不同

在Google高级Rest客户端中:

Status
200 OK Show explanation Loading time: 578
Request headers 
CSP: active
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
Authorization: 3d5cd0938b8db73d62e246e561c86f
Content-Type: application/x-www-form-urlencoded 
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.2
AlexaToolbar-ALX_NS_PH: AlexaToolbar/alxg-3.3
Response headers 
Date: Mon, 08 Jun 2015 19:38:09 GMT 
Server: Apache 
Cache-Control: max-age=604800 
Expires: Mon, 15 Jun 2015 19:38:09 GMT 
Vary: Accept-Encoding 
Content-Encoding: gzip 
Content-Length: 1264 
Keep-Alive: timeout=10, max=500
Connection: Keep-Alive
Content-Type: application/json 
我的ajax请求通过应用程序启动,并为标题提供以下服务器日志:

+28639:556f87c3:0 |选项/v1/category/HTTP/1.1 |主机:snake2.测试api |连接:保持活动| Pragma:no cache |缓存控制:no cache |访问控制请求方法:POST |来源:HTTP%3a//127.0.1 |用户代理:Mozilla/5.0(iPhone;CPU iPhone OS 7 1240,如Mac OS X;en us)AppleWebKit/537.51.1(KHTML,如Gecko)Version/7.0 Mobile/11A465 Safari/9537.53 |访问控制请求头:接受、api密钥、授权、内容类型|接受:/|引用者:http%3a//127.0.0.1/~merlin/test_apps/www/index|search.html |接受编码:gzip、deflate、sdch |接受语言:de de、de;q=0.8,在美国;q=0.6,en;q=0.4,es;q=0.2 | alextoolbar-ALX_NS_PH:alextoolbar/alxg-3.3 -28639:556f87c3:0

显然,标题中缺少授权令牌,而且不知何故出现了“选项”一词

这也是我从chrome上的控制台错误中得到的:

OPTIONS http://snake2.test-api/v1/category/ 404 (Not Found)
m.ajaxTransport.send @ jquery.js:4
m.extend.ajax @ jquery.js:4
(anonymous function) @ index_search.html:26
m.Callbacks.j @ jquery.js:2
m.Callbacks.k.fireWith @ jquery.js:2
m.extend.ready @ jquery.js:2J @ jquery.js:2
index_search.html:1无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。响应的HTTP状态代码为404

我知道跨浏览器/浏览器的安全问题会触发有关源代码的消息。然而,科尔多瓦内部不应出现这种情况,事实并非如此。这里的问题是,不知何故,发送到头中的授权密钥不起作用,我的语法将其转换为“选项”

可能的重复可能的重复可能的重复