我正在使用Visual Studio 2015编写服务器和客户端。
在Chrome和FireFox中会发生以下问题,但在资源管理器中可以完美运行。
我正在使用AJAX到我的服务器的AJAX代码进行Rest post呼叫:
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中的Register函数:
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)
我在WebApi的Web.config中有这些配置。
<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>
我注意到如果删除
contentType: "application/json; charset=utf-8",
从Ajax请求中我可以工作,但不会在服务器中获取数据。
我不知道该怎么办,尝试了一切。
参考方案
解决方案是将以下内容添加到Global.asax文件中
protected void Application_BeginRequest()
{
var context = HttpContext.Current;
var response = context.Response;
if (context.Request.HttpMethod == "OPTIONS")
{
response.AddHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
response.End();
}
}
javascript popupwindow之后的行如何工作? - javascript好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…
Javascript-Urls的奇怪字符串比较行为 - javascript最近,在编写我无法理解的javascript时遇到了字符串比较的问题。我从完全相同的网址创建了两个字符串,当我比较它们时返回false,但是在重新分配相同的字符串后,比较返回true。这是我的示例:var str1 = "http://google.com/"; var str2 = "http://google.com/…
将值从Default.aspx.cs页发送到Default.aspx页javascript函数 - javascript它说VM145:1 Uncaught ReferenceError:未定义余额。我宣布余额为: 受保护的字符串余额作为类变量。Default.aspx.cs页面 Response.Write("print_file(balance);"); Default.aspx JavaScript函数 function print_f…
Javascript-从当前网址中删除查询字符串 - javascript单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…
json数组,其中in数组返回错误?坏字符串 - javascript我将json字符串文件解析为python,并且始终返回error。我使用了在线json格式化程序和验证器,它们也返回错误,因此我需要帮助使我的json正确并告诉我错误 [{ "sentence_id": "TR.00001", "sentence": { "text": …