2016-11-17 19 views
0

ここにスレッドを読み込んだ後で、クロスドメインのajax呼び出しを取得しようとしたところでスレッドを読みました。私は単純なブールを返す安らかなWCFサービスを持っています。クロスドメインjquery/Ajaxサービスコールで問題が発生しました

[WebGet(RequestFormat = WebMessageFormat.Json, 
ResponseFormat = WebMessageFormat.Json, 
UriTemplate = "ShowCreditCardTextJQUERY?memberNumber={memberNumber}&callback={callback}", 
BodyStyle = WebMessageBodyStyle.WrappedRequest)] 

私のAjaxは、次のようになります:

$.ajax({ 
    url: "http://example.com/service/service.svc/ShowTextJQUERY", 
    type: "GET", 
    contentType: "application/json; charset=utf-8", 
    dataType: "jsonp",    
    crossDomain:true, 
    data: "{'memberNumber':'" + memberNumber + "'}", 
    cache: false,    
    //success: alert(memberNumber), 
    success: function (data) { 
     var output = data; 

     if (!data) { 
      $("#dialog").dialog(
      { 
       modal: true, 
       width: 735, 
       height: 550 
      }); 
     } 
    }, 
    error: function (xhr, ajaxOptions, thrownError) { 
     alert(xhr.status); 
    } 
}); 

私は応答のためではなく、という200を受け取り、私は、コールバックパラメータを使用して適切な応答形式(JSON)と予想されるURLと、それはセットアップ持っていますエラーブロックに入っています。私は迷っています(まだjquery/ajaxにはかなり新しいです)。どんな助けでも大歓迎です。通常のWebサービス呼び出し

  var jsonData = [YOUR JSON PARAMETER]; 

      $.ajax({ 
       async: false, 
       type: "POST", 
       url: [YOUR WEB SERVICE URL], 
       contentType: "application/json; charset=utf-8",     
       data: JSON.stringify({ json: jsonData }), 
       dataType: "json",     
       success: OnSuccess, 
       failure: function(err) { 
        alert("Error : " + err.d); 
       } 
      }); 

      function OnSuccess(data) { 
       alert("Success:" + data.d);      
      } 

のためにあなたはそれのために一つのことを行うことができているだけでアクセス制御 - 許可 - 起源&アクセス制御を設定する必要が

+0

で200応答がありますがによって停止されているように聞こえるがないデータが与えられたことを行うことができます[同じ原産地政策](http://en.wikipedia.org/wiki/Same-origin_policy)。コンソールをチェックすると、これを確認できます。 'Access-Control-Allow-Origin'ヘッダを持たない受信ドメインに関するエラーがあります。 WCFサービスでCORSを有効にしましたか? –

+0

私はそれをどうやって設定しましたか? – dreggas

+0

IEの開発者ツールを使用して、jsonpの代わりにjsonにデータ型を変更した場合、レスポンス本文(この場合はbool値がfalse)に戻ってくると思われる応答が表示されます。ローカルホストでは正常に動作します(明らかに) – dreggas

答えて

0

コードのこれらの行はあなたの問題を解決してもよいし、 CustomeHeadersのあなたのWebサービスweb.configファイルの-Allow-Headers。

<add name="Access-Control-Allow-Origin" value="*" /> 
<add name="Access-Control-Allow-Headers" value="Content-Type" /> 

あなたは、特定のドメインに許可する場合は、あなたが特定のドメインの値の代わりに、*値

関連する問題