Angularjs$http.post()仅发送选项请求
我有一些角度代码,试图向开发服务器发送帖子Angularjs$http.post()仅发送选项请求,angularjs,post,http-post,Angularjs,Post,Http Post,我有一些角度代码,试图向开发服务器发送帖子 var url = 'http://someDevUrl.com', data = { 'someKey': 'some value' }; $http.post(url, data); 它发送选项飞行前请求。我可以看到它击中了服务器,服务器给了它一个愉快的响应 选项响应标题: HTTP/1.1 200 OK Server: Cowboy Date: Mon, 08 Dec 2014 18:20:44 GMT Connection: clos
var url = 'http://someDevUrl.com',
data = { 'someKey': 'some value' };
$http.post(url, data);
它发送选项飞行前请求。我可以看到它击中了服务器,服务器给了它一个愉快的响应
选项响应标题:
HTTP/1.1 200 OK
Server: Cowboy
Date: Mon, 08 Dec 2014 18:20:44 GMT
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 30
Access-Control-Allow-Headers: x-requested-with, content-type, accept, origin, authorization, x-csrftoken
Content-Type: text/html; charset=utf-8
Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
Via: 1.1 vegur
但之后我再也不发邮件了
通常,当$http.post()只发送选项请求时,这意味着选项请求返回错误(通常是CORS问题)。但是在这种情况下,选择request&response就可以了,但是它仍然不会发送帖子
以前有没有人看到过这一点,或者知道是什么阻止了它发送邮件
编辑:
我在请求中添加了
Content-Type:text/plain
标题,解决了这个问题:
var url = 'http://someDevUrl.com',
data = { 'someKey': 'some value' },
config = {
headers: {
'Content-Type': 'text/plain'
}
}
};
$http.post(url, data, config);
这样就避免了这个问题。我仍然很想知道为什么它一开始不起作用,因为存在/不存在CORS问题,并且选项请求没有返回错误响应。我打赌您需要继续,至少定义您的.success(d,s,h,c)回调。看看这是否会导致你想要的行为。谢谢你的回复。实际上,我在实际代码中定义了一个success()回调函数,但我从上面的示例代码中排除了它,因为它似乎与问题无关。成功/then回调直到帖子发送后才被使用/相关,因此在我包含/排除它时没有什么区别,因为它从未到达发送帖子的目的。我针对我的一个API运行了一个测试,以验证您的响应。。。我关心的一句话是:联系:保持活力//这是我得到的回报,你说的很接近。。。因此,我的下一个任务是查看是否可以阻止API返回一个接近的响应