リストデータ。複雑なフィルタを持つsvc、Internet Explorer、400Bad HTTP要求,
-
10-12-2019 - |
質問
私はどのように理解するのに問題がありますか ListData.svc
IE8とIE9を使用してデバッグできます。
私はこのようなURLを持っています:hostname:8181/_vti_bin/listdata.svc/ImageBanners?$filter=endswith(Path,'TopLeft')
とショー eq真
SharePointスタンドアロンサーバーからIE8を使用してアクセスしようとすると、エラー400が表示されます。
Firefoxを使用して同じURLを要求すると、正常に動作します。
その上に hostname:8181/_vti_bin/listdata.svc/ImageBanners
それもIEであるべきように動作します。したがって、問題は次のようになっているようです $filter=endswith
パート...
しかし。サーバーのIPアドレスまたはlocalhostを使用してIE8で同じURLを要求すると、複雑なフィルターでも正しい結果が得られます。
誰でも、この謎に光を当てることができますか?なぜ私はこの種の行動を取るのですか?
追加情報:
- SharePointにはロシア語と英語のバージョンがインストールされています。
- SharePointアプリケーションはNTLM認証を使用しています。
- IISでの匿名認証は無効になっています。
Fiddlerは、すべてのリソースが2回要求されていることを示しています。サーバーが最初に401を返し、次にブラウザとURLに応じて200または400を返します(上記の詳細を参照)。
- 私がアクセスするとき
ListData.svc
Firefoxの正しいHTTPリクエストを使用すると、次のようになります:
受け入れる:テキスト/html、アプリケーション/xhtml+xml, /
受け入れ言語:en-US
ユーザーエージェント:Mozilla/5.0(互換性;MSIE9.0;Windows NT6.1;WOW64;トライデント/5.0)
アクセプトエンコーディング:gzip、deflate
接続:キープアライブ
クッキー:Wss_keepsessionauthenticated={b3987daa-d463-415f-8fb3-d556c27e5bbf}
ホスト:ローカルホスト:8181
認証:NTLM TlRMTVNTU...- IE8HTTP要求を使用する場合は、次のようになります(注意
lcid=1049
.多分それが問題かもしれませんか?):
受け入れる:image/jpeg,image/gif,image/pjpeg,application/x-ms-application,application/xaml+xml,application/x-ms-xbap, /
受け入れ言語:en-US
ユーザーエージェント:Mozilla/4.0(互換性;MSIE7.0;Windows NT6.1;WOW64;トライデント/5.0;SLCC2;.NET CLR2.0.50727;.NET4.0C;.NET4.0E;.NET CLR3.5.30729;.NET CLR3.0.30729;インフォパス3)
アクセプトエンコーディング:gzip、deflate
接続:キープアライブ
クッキー:lcid=1049;Wss_keepsessionauthenticated={b3987daa-d463-415f-8fb3-d556c27e5bbf}
認証:NTLM TlRMTVNTU...
ホスト:再生回数:8181- 私がアクセスするとき
解決
私は最終的にそれを固定しました。これはSharePointのRESTの機能であることが判明しました。私は取る必要がありました UI言語 考慮に入れて!
たとえば、en-usロケールの場合、RESTクエリは次のようになります:
?$filter=endswith(パス,'FolderName')
しかし、ru-ruでは次のようになります:
?$filter=endswith(Путь,'FolderName')
さらに、あなたはロシアの手紙を逃れる必要があります。だから、最終的には次のようになります:
?$filter=endswith(%D0%9F%D1%83%D1%82%D1%8C",'FolderName')
しかし、これだけの問題ではありません。..私が受け取るJSONもローカライズされていることがわかりました。これによって、私はプロパティが持っていることを意味します 異なるローカライズされた名前.たとえば、en-usで返されたJSON:
{...これは、次のようになります。http://Docs.Oracle.com/technetwork/Java/Javase/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs/Docs..}
るーるで:
{...."КемИзмененоId":1,"ИсточникКопии":null,"СостояниеУтверждения":"0","Путь":"/Lists/ImageBanners/BottomRight"...}
異なる言語のプロパティの名前を予測するのは本当に難しいので、これは問題です。私はこの情報が誰かのための有用な警告になることを願っています。