0

私はこれでしばらく立ち往生しています。ここにajaxリクエストがあります:

$.ajax({
    url: UPDATE_USER_INFO_URL ,
    type: "POST",
    dataType: "json",
    contentType: "application/json",
    data: JSON.stringify({user:'user'}),
    success: function (data, textStatus) {
        if(data["statusCode"] && data["statusCode"] == 1) {
            _callback(1,data);
        }
        else {
            _callback(0,data);
        }
    },
    error: function (jqXHR, textStatus){
        _callback(0, {});
    }           
});

特定のURLに設定UPDATE_USER_INFO_URLすると、フィドラーは本文に何も表示しません。UPDATE_USER_INFO_URL他の何か(無効なURLでも)に設定すると{user:'user'}、フィドラーの本文に入れられます。

元のUPDATE_USER_INFO_URLの場合:

POST http://10.35.50.26:8080/SelfServiceWs/user/session/upduserinfo HTTP/1.1
Accept: application/json, text/javascript, ; q=0.01
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Referer: http://10.35.50.26:8080/SelfService/
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Host: 10.35.50.26:8080
Connection: Keep-Alive
Pragma: no-cache
Cookie: JSESSIONID=0BF9D9CCCE9030E60AB0BCE5F6562CD8
Authorization: Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw==
Content-Length: 0

/ SelfServiceWs/abcdefへのURLを変更します

POST http://10.35.50.26:8080/SelfServiceWs/abcdef HTTP/1.1
Accept: application/json, text/javascript; q=0.01
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Referer: http://10.35.50.26:8080/SelfService/
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Host: 10.35.50.26:8080
Content-Length: 15
Connection: Keep-Alive
Pragma: no-cache
Cookie: JSESSIONID=9E79779805579A7964E03AAD76DF043B

{"user":"user"}

他にも多くのajax呼び出しがあり、すべて期待どおりに機能しています。

私が見逃しているのは小さなことでしょう。

4

2 に答える 2

1

私はこれを理解しました。

/ user / ssoauthをURLする認証サーブレットフィルターがありますが、予期せず(私にとって)、/ userパス(/ user / session / upduserinfoを含む)の下のURLを呼び出して、Authorizationヘッダーを送信しました。フィルタを/user/ auth / ssoauth stop clientに移動して、user / session / upduserinfoを呼び出すときに認証ヘッダーを送信し、問題を修正しました。

<filter-mapping>
  <filter-name>SecurityFilter</filter-name>
  <url-pattern>/user/ssoauth</url-pattern>
</filter-mapping>

/ userの後にURLを呼び出すすべてのクライアントに、Authorizationヘッダーを送信させます。

今日は何か新しいことを学びました!

于 2013-03-04T18:14:26.543 に答える
0

これを試して

data: JSON.stringify({'user':'user'}),
于 2013-03-02T04:09:59.230 に答える