Javascript AngularJs发送一个选项而不是POST请求

Javascript AngularJs发送一个选项而不是POST请求,javascript,angularjs,xss,Javascript,Angularjs,Xss,关于这个问题我一直在闲逛。这似乎是一种正常的行为,因为我正在尝试提出跨站点请求。我已经根据我在这里读到的所有内容创建了我的Web服务: <WebMethod()> _ <ScriptMethod(ResponseFormat:=ResponseFormat.Xml, UseHttpGet:=False)> _ Public Function Test() As String Me.Context.Response.Clear() Me.Context.Re

关于这个问题我一直在闲逛。这似乎是一种正常的行为,因为我正在尝试提出跨站点请求。我已经根据我在这里读到的所有内容创建了我的Web服务:

<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Xml, UseHttpGet:=False)> _
Public Function Test() As String
    Me.Context.Response.Clear()
    Me.Context.Response.AddHeader("Access-Control-Allow-Origin", "*")
    Me.Context.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type")
    Me.Context.Response.ContentType = "text/plain"
    Return "<test>aRetStr</test>"
End Function
这里也建议使用
X-request-With=XMLHttpRequest
accesscontrolalloworigin=*
text/plain
,但在我的情况下不起作用。 事实上,Firebug向我显示了一个选项请求,没有XSS错误,但是下面的帖子从未发生过。将触发错误
警报
,发生这种情况时,回调中的配置如下所示:

Accept : application/json, text/plain, */*
Content-Type : application/json;charset=utf-8
X-Requested-With : XMLHttpRequest
method : POST

我能做些什么,为什么什么都没发生?

很抱歉,答复不完整,但我不完全了解您的后端技术

基本上,由于CORS,Angular应用程序正在向服务器发出预飞请求,这意味着它首先在该URL上执行HTTP.OPTIONS请求,在服务器成功响应后,它将发出HTTP.xxx请求(在本例中为POST)

因为您还没有将Web服务配置为响应HTTP.OPTIONS,我相信这就是导致错误的原因

解决方案是将Web服务配置为使用以下标题答复HTTP.OPTIONS请求:

    response: 200, "ok"
    header 'Access-Control-Allow-Origin': http://yoursite.com
    header 'Access-Control-Allow-Methods': 'POST, OPTIONS'

请在此处查看有关CORS规范的更多信息:

错误回调中的
状态
包含哪些内容?
0
。和
data
中的
null
。是否尝试添加访问控制允许方法,并将其设置为允许的方法?i、 e.
访问控制允许方法:POST、GET、OPTIONS
您的web方法不需要参数,但您正在发布数据。服务可能找不到匹配的终点。我在网上的某个地方看到了答案,但不记得在哪里。但是,解决方案是在Web服务上为该URL上的选项请求添加端点。
    response: 200, "ok"
    header 'Access-Control-Allow-Origin': http://yoursite.com
    header 'Access-Control-Allow-Methods': 'POST, OPTIONS'