2011-07-13 4 views
0

私の目標は、Jqueryを使用してWebサービスを呼び出すことです。 は、私はこのサイトから、この例が見つかりました: How to use jQuery to call an ASP.NET web service?JavaScriptからWebサービスを呼び出すときにアクセスが拒否されました。

私は私の使用にそれを修正:

function InfoByDate(aUrl){ 
    var divToBeWorkedOn = '#AjaxPlaceHolder'; 
    var webMethod = 'http://MyWebService/Web.asmx/GetInfoByDates' 
    var parameters = "{'sUrl':'" + aUrl + "'}" 

    $.ajax({ 
     type: "POST", 
     url: webMethod, 
     data: parameters, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) {  
      $(divToBeWorkedOn).html(msg.d); 
     }, 
     error: function(e){ 
      $(divToBeWorkedOn).html("Unavailable");    
     } 
    }); 
} 

は、今私は、拒否されたのjsエラーへのアクセスを取り戻します! 私のWebサービスは同じドメインにあり、クロスドメインは関係ありません。 誰かがその問題を私に助けてくれますか? 乾杯。 NirNiroN

+1

ウェブサービスは、それを呼び出すウェブページとは別のドメインにありますか?もしそうなら、あなたはSOP(同じ起点方針)の問題に当たっています。 –

+0

もう少し情報を与えてください。サーバーへの呼び出しが行われますか?火かき棒でそれを調べることはできますか?サーバが応答コードなどを提供しているか何も実行されておらず、エラーコードや回線情報など何もない「アクセスが拒否されました」のようなjsエラーを受け取るだけですか? – TheBrain

答えて

0

どこから電話していますか?同じドメイン(「mywebservice」)にいない場合は、そのようなクロスドメインのajaxコールを実行できないため、機能しません。

この場合は、利用可能なさまざまなオプション(サーバー上のCORS、 'クライアント'マシン上のリバースプロキシ、またはJSONP)を調べることをお勧めします。

+0

私のwebserviceは同じドメインにあります。許可の問題ですか? – NirNiroN

+0

そうですね、そうです。他のクライアントからWebサービスを呼び出すことはできますか?あなたがまだ持っていなければ私はSoapUIでテストします。 – Ben

1

JavaScriptを使用しており、自分のドメインからWebサービスを呼び出していない場合は、許可されません。しかし、JSONPをクロスドメイン・コールに使用することができます。そのため、これを使用してみてください。

あなたはここにhttp://en.wikipedia.org/wiki/JSONP

+0

私のWebサービスは同じドメインにありますが、私はいつもアクセスを得ています – NirNiroN

0

その上に読むことができるWebサービスは、同じサーバー上で利用できますか?クロスサーバ要求はAjaxでは許可されておらず、あなたのWebサービスはJavaScriptコードと同じドメインにいなければ動作しません。

関連する問題