0
我正在使用visual studio 2015編寫服務器和客戶端。 Chrome和FireFox中出現以下問題,但在資源管理器中工作正常。 我做使用AJAX一個休息後調用我的服務器,Ajax代碼:針對預檢的響應具有無效的HTTP狀態代碼400 - aspx
function CheckIntegrityExecution() {
var request = ...
var reqJson = JSON.stringify(request);
$.ajax({
type: "POST",
url: "http://localhost:55857/api/post/flow",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: reqJson,
success: function (jsonData) {
...
},
error: function() {
alert("error");
}
});
}
起初我正在405錯誤,這是固定的,在加上
var cors = new EnableCorsAttribute("http://localhost:55857", "*", "*");
config.EnableCors(cors);
到寄存器功能Global.asax中:
public static void Register(HttpConfiguration config)
現在我得到以下錯誤:
XMLHttpRequest cannot load http://localhost:55857/api/post/flow. Response for preflight has invalid HTTP status code 400
在我的服務器的方法簽名是
[Route("api/post/flow")]
public HttpResponseMessage PostCommand([FromBody] dynamic value)
而且我在在Web.config文件的WebAPI有這些配置。
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="OPTIONS, TRACE, GET, HEAD, POST, PUT" />
<add name="Access-Control-Allow-Headers" value="Origin, Content-Type, Authorization, Accept, X-Requested-With" />
</customHeaders>
我注意到,如果我從Ajax請求我將努力刪除
contentType: "application/json; charset=utf-8",
,但在我的服務器我不會得到的數據。
我不知道該怎麼做,試過了一切。
可能你只是嘗試使用類型'object',而不是'dynamic'? – Developer
@開發人員這不是解決我的問題,爲什麼需要這種改變? –
只是想檢查這是綁定到JSON到動態對象時是否是模型綁定相關的問題。通常'contentType:「application/json」'(我從來沒有給出字符集)應該正確綁定到對象/類 – Developer