Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在非IE浏览器中发布jquery AJAX_Jquery_Asp.net_Ajax_Vb.net_Http Post - Fatal编程技术网

无法在非IE浏览器中发布jquery AJAX

无法在非IE浏览器中发布jquery AJAX,jquery,asp.net,ajax,vb.net,http-post,Jquery,Asp.net,Ajax,Vb.net,Http Post,我有一个服务,它接受多个参数并安排一个作业。有些参数可能太长,因此我决定使用POST请求。 服务定义如下: <WebInvoke(Method:="POST", UriTemplate:="scheduleJob?JobDateTime={JobDateTime}&JobName={JobName}&TestCases={TestCases}&IDs={IDs}&UserName={UserName}", ResponseFormat:=WebMessage

我有一个服务,它接受多个参数并安排一个作业。有些参数可能太长,因此我决定使用POST请求。 服务定义如下:

<WebInvoke(Method:="POST", UriTemplate:="scheduleJob?JobDateTime={JobDateTime}&JobName={JobName}&TestCases={TestCases}&IDs={IDs}&UserName={UserName}", ResponseFormat:=WebMessageFormat.Json)>

Function ScheduleJob(ByVal JobDateTime As String, ByVal JobName As String, ByVal TestCases As String, ByVal IDs As String, ByVal UserName As String) As String
在通过fiddler进行检查时,我发现IE浏览器发送的请求会在标题中发送POST,但当我使用Mozilla或Chrome时,选项标题似乎会附加到请求中

我阅读了一些帖子,并对我的asp.net做了一些修改:

 If HttpContext.Current.Request.HttpMethod = "OPTIONS" Then 
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "POST,GET")
            HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "172800")
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*")
End If
但似乎什么都不管用。如果我用fiddler中的“POST”来模拟同样的请求,那么事情似乎很酷。唯一的问题是我如何摆脱“选项”

我得到了选项请求的405响应码。标题为:

OPTIONS http://localhost:60403/TaskScheduler.svc/scheduleJob?jobDateTime={12/31/2014%2016:25}jobName={}TestCases={format,localeFormat,_toFormattedString,}Ids={0,}%20+%20UserName={abcd} HTTP/1.1
Host: localhost:60403
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Origin: http://localhost:54249
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

如有其他建议,我们将不胜感激

选项
请求是一个浏览器飞行前请求,在继续完整请求之前检查响应标题Hello@charlietfl,我已经用标题更新了我的问题,我的响应代码只是405。关于如何处理此问题的任何建议?似乎没有最重要的
Access Control Allow Origin
标题。我不在asp中工作,但您的
Addheader
代码似乎不工作,所以现在需要更改哪个部分?服务或我的ASP.NET代码。我已经在我的
应用程序中提到了添加到代码以允许
访问控制允许源代码
。不确定我是否遗漏了什么。任何指向@charlietflsee的指针,如果这有助于ASP,都会显示您似乎没有的东西和一个nuget包
OPTIONS http://localhost:60403/TaskScheduler.svc/scheduleJob?jobDateTime={12/31/2014%2016:25}jobName={}TestCases={format,localeFormat,_toFormattedString,}Ids={0,}%20+%20UserName={abcd} HTTP/1.1
Host: localhost:60403
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Origin: http://localhost:54249
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache