【发布时间】:2018-07-05 01:49:29
【问题描述】:
首先我会说我在 Javascript/React 方面有点新手。我正在尝试与我的 WCF 端点服务器进行通信,但我似乎无法在没有得到响应的情况下发送任何 POST 消息:
选项http://###/testbuyTicket 405(方法不允许)
似乎因为我使用内容类型 JSON 发送它,它需要“预飞行”,这就是它失败的地方。
这是我的客户端代码:
var headers = {
'headers': {
'Content-Type': 'application/json',
}
}
axios.post(call, data, headers).then(res => {
try {
if (res) {}
else {
console.log(res);
}
}
catch (err) {
console.log(err);
}
}).catch(function (error) {
console.log(error);
});
这里是错误详情:
我不明白为什么这次预飞行会失败。在服务器上,我已经允许了我认为我需要的一切:
{"Access-Control-Allow-Origin", "*"},
{"Access-Control-Request-Method", "POST,GET,PUT,DELETE,OPTIONS"},
{"Access-Control-Allow-Headers", "X-PINGOTHER,X-Requested-With,Accept,Content-Type"}
[ServiceContract]
public interface IPlatform
{
[OperationContract]
[WebInvoke(UriTemplate = "testbuyTicket")]
TicketResponse TestBuyTicket(PurchaseRequest purchaseRequest);
}
任何帮助将不胜感激。我觉得我什么都试过了。非常感谢。
【问题讨论】:
-
'headers': { 'Content-Type': 'application/json'}在headers中的用途是什么? -
似乎您的服务器没有处理作为 CORS 预检的 OPTIONS 请求,并告诉您不允许使用 OPTIONS
-
@guest271314 我补充说以确认我正在以 JSON 格式发送数据,而不是发送响应以抱怨数据为 RAW 格式。我添加的一些东西比任何东西都更有希望
-
为什么要创建一个
headers对象,然后包含一个嵌套的headers对象? -
但这仅在 CORS 标头中。可能是服务器端路由问题。检查实际的 OPTIONS 请求,可能看不到其中的访问控制标头
标签: javascript reactjs wcf cors axios