我开发了一个PhoneGap应用程序,现在将其转换为移动网站。除了一处小故障,一切都可以顺利进行。我通过POST请求使用了某个第三方API,该API在该应用中可以正常运行,但在移动网站版本中却无法运行。
仔细查看后,似乎AngularJS(我想实际上是浏览器)正在首先发送OPTIONS请求。今天,我对CORS有了很多了解,但似乎无法弄清楚如何完全禁用它。我没有访问该API的权限(因此无法在那一侧进行更改),但是他们已将我正在处理的域添加到其Access-
Control-Allow-Origin标头中。
这是我正在谈论的代码:
var request = {
language: 'fr',
barcodes: [
{
barcode: 'somebarcode',
description: 'Description goes here'
}
]
};
}
var config = {
headers: {
'Cache-Control': 'no-cache',
'Content-Type': 'application/json'
}
};
$http.post('http://somedomain.be/trackinginfo', request, config).success(function(data, status) {
callback(undefined, data);
}).error(function(data, status) {
var err = new Error('Error message');
err.status = status;
callback(err);
});
如何防止浏览器(或AngularJS)发送该OPTIONS请求,而直接跳到实际的POST请求?我正在使用AngularJS 1.2.0。
提前致谢。
预检是由您的Content-Type触发的application/json
。防止这种情况的最简单方法是将Content-
Type设置为适合text/plain
您的情况。application/x-www-form-urlencoded
&multipart/form- data
Content-Types也可以接受,但是您当然需要适当地格式化请求有效负载。
如果进行此更改后仍然看到预检,则Angular可能也在请求中添加了X-header。
或者您可能具有将触发它的标头(授权,缓存控制…),请参见:
我试图从javascript本身调用另一个域中的服务。我可以请求跨域服务。但我无法从服务中检索信息。一些我如何被同源政策阻止。请帮我找出代码中的错误。 OPTIONS/SolartisGeoCodelookupService/Service/DrawRegions HTTP/1.1 主机:Cross_Domain_IP_Address 用户代理:Mozilla/5.0(x11;Linux x86_
问题内容: 我想从文件中推断出字段名称。文档说: “如果省略fieldnames参数,则csvfile第一行中的值将用作字段名。” ,但在我的情况下,第一行包含标题,第二行包含名称。 我无法按照Python 3.2的要求在csv.DictReader中跳过一行, 因为在初始化读取器时发生了字段名分配(否则我做错了)。 csvfile(从Excel 2010导出,原始源): 我的代码: 当前结果:
问题内容: AJAX请求工作正常,但是当我通过beforeSend或标头添加标头时,会发出OPTIONS预检请求,而GET请求将中止。 指定了类似的没有 头的AJAX请求(在我添加/修改头的那一刻,进行了OPTIONS调用) 相似的服务器响应头(用于GET请求) 我做错了什么? 问题答案: 解决了。感谢@JasonP的指针。改变服务器 响应头 从 访问控制允许标题:* 到特定的 访问控制允许标题:
从浏览器到我的自助主机OWIN WebAPI的所有预飞行请求都不会被中间件处理。如果我从邮递员提出选项请求,它们将被处理。为什么是这样的行为? 请求URL:http://localhost:9000/api/v1/conversations/create?connectionId=13509f44-eacb-4950-8cc8-71bd37098975 请求方法:选项 状态代码:401未经授权的远
问题内容: 我认为我误会了read_csv的意图。如果我有文件“ j”,例如 我如何pandas.read_csv这个文件,跳过任何’#’注释行?我在帮助行的注释中看到它不被支持,但是它指示应该返回一个空行。我看到一个错误 CParserError:标记数据时出错。C错误:第2行中应有1个字段,看到了3个 我目前在 在版本‘0.12.0-199-g4c8ad82’上: CParserError:标
我想我误解了阅读的意图。如果我有一个像“j”这样的文件 我怎样才能看到熊猫。读取此文件,跳过任何“#”注释行?我在帮助中看到,不支持行的“注释”,但它表示应返回空行。我看到一个错误 数据标记化出错。C错误:预期第2行中的1个字段,锯3 我现在在 在版本“0.12”上。0-199-g4c8ad82': 数据标记化出错。C错误:预期第2行中的1个字段,锯3