0

次の場所にある、新しくセットアップした RESTful WCF サービスを使用しようとしています。

[http://196.34.92.60/api/api/v1/public.svc/getoperators]

入手したサードパーティのツールを使用してアクセスしました

http://code.google.com/a/eclipselabs.org/p/restclient-tool/

https://addons.mozilla.org/en-US/firefox/addon/restclient/

そして私の結果は私が期待したように見えます:

{
   "Results":
   [
       "golden arrow",
       "jammie",
       "myciti"
   ]
}

すべて順調です。Web ブラウザーに URL を入力するだけで、応答は次のようになります。

<ResultList xmlns="http://schemas.datacontract.org/2004/07/Developer_Portal"xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Results xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><a:string>golden arrow</a:string><a:string>jammie</a:string><a:string>myciti</a:string></Results></ResultList>

私が期待したものではありませんでしたが、これは正常であると想定し、Javascript でサービスを利用しようとしました (ここにフィドルがあります)。

http://jsfiddle.net/JmTe4/11/

エラーで応答します。この時点で私は困惑しています: JavaScript で目的の応答を得るにはどうすればよいですか?

4

2 に答える 2

1

いくつかのこと。そのうちのいくつかは、他のメンバーによってすでに言及されています。

  1. XMLHttpRequest を介した AJAX 呼び出しは、ドメイン間では機能しません。つまり、AJAX コードは jsfiddle.net から 196.34.92.60 を呼び出すことができません。それらは異なるドメインです。
  2. "Accepts: text\html" をヘッダーとして送信しているため、ブラウザは XML を返しています。jQuery は、リクエストで application\json を使用するため、この問題を解決します (特に指定しない限り)。

したがって、問題 2 は既に修正されています。問題 1 は、JSONP を使用して解決できます。?callback=? を追加するだけです。あなたのURLの最後に。ただし、完全な概要については、jQuery のサイトのドキュメントを参照してください。

この URL に移動し、「JSONP」のページを検索しますhttp://api.jquery.com/jQuery.getJSON/

于 2012-09-20T10:18:36.607 に答える
0

問題はサーバーの webconfig にありました。追加しなければなりませんでした

<binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" />

皆さんの提案に感謝します。彼らはおそらく、私がとにかく遭遇したであろう他のいくつかの問題を解決しました. :)

于 2012-09-20T13:19:12.673 に答える