3

私はWebサービスが初めてです。私のプロジェクトでは、Web サービス (すべてが既製) を接続して実行しようとすると、次のエラーが発生しました。

エラー -->

Uncaught SyntaxError: Unexpected token <

Web サービスとマイ ページは同じソリューションですが、プロジェクトは異なります。

関連するコードは次のとおりです。

jQuery (URL:11761)

 function GetAllCategories() {
   $.ajax({
      url: "http://localhost:12015/myWebService.asmx?op=GetCategories",
      type: "POST",
      dataType: "jsonp",
      data: "{}",
      contentType: "application/jsonp; charset=utf-8",
      success: function (data) {
          var categories = data.d;
          $.each(categories, function (index, category) {
              alert(category.CategoryId);
          });
      },
      error: function (e) {
          alert(e.message);
      }
   });
}

Webサービス(URL:12015)

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<Categories>  GetCategories()
{
    //Code
}

ここで質問する前に、このリンクを確認しました(理解できません)

編集:

この投稿から別の回答を得ました。

4

2 に答える 2

5

サイトと Web サービスが 2 つの異なるプロジェクトで実行されているため、 Same Origin ポリシーを破っていることがわかりました。

Web サービスと Web サイトを同じプロジェクトに移動すると、動作するはずです。

また、あなたのjavascriptは間違っているはずです

function GetAllCategories() {
   $.ajax({
      url: "http://localhost:12015/myWebService.asmx/GetCategories",
      type: "POST",
      dataType: "jsonp",
      data: "{}",
      contentType: "application/jsonp; charset=utf-8",
      success: function (data) {
          var categories = data.d;
          $.each(categories, function (index, category) {
              alert(category.CategoryId);
          });
      },
      error: function (e) {
          alert(e.message);
      }
   });
}

op ビットは、Web ブラウザーでのテスト用にのみ存在します。それを取り除けば、あなたは元気になるはずです。

PS @andyb は公平を期すために、少し前にこの回答を提案しましたが、これが問題であることは明らかではありませんでした! アップデート

今日はこれについて少しおかしなポーカリーをやっていて、いくつかの点を明確にしたので、共有したいと思います。POSTサービスを利用する必要.asmxがあり、このクロスドメインを行うことはできません。GETドメイン間でa を起動できますが、a ではないPOSTため、これがルートの問題であると私は信じています。

を有効にすることができます。GET 経由で ASMX Web サービスを呼び出す方法をGET参照してください。. しかし、これは Web サービスをすべての雑多なものにさらすことになるため、悪い考えのように思えます。

于 2012-12-27T11:37:25.050 に答える
0

あなたの質問に対する直接的な回答ではありませんが、同様の問題を解決するために私がしなければならなかったことは次のとおりです

ASP.Net 2.0 でデータ型を強制的に JSON にする方法

問題は、それASP.Net Ajaxがインストールおよび構成されていないことでした。

于 2014-06-12T14:43:32.140 に答える