2016-04-11 6 views
0

MVCフレームワーク4.5を持つVisual Studio Version 2013を使用しています。私は次のようにAJAXを使用してのActionResultを呼び出していますASP.NET MVCを使用したajaxコールのクロスオリジン

$.ajax({ 
       type: "POST", 
       url: $("#hdnSiteUrl").val() + 'Home/UserLogin', 
       data: JSON.stringify(dataJson), 
       contentType: "application/json; charset=utf-8", 
       datatype: "jsonp", 
       async: false, 
       success: function (msg) { 
        if (msg == 'false') { 
         $("#loginerror").show(); 
         $("#loginerror").text("UserName or Password is wrong."); 
        } 
        else { 
         //window.location.href = ($("#hdnSiteUrl").val()); 
         window.location.reload(); 
        } 
       }, 
       error: function (msg) { 
       } 
      }); 

私が今直面しています問題は、一部のコンピュータでは、クロス起源であるが、一部のコンピュータでは、それは罰金を実行しています。

この問題を解決するにはどうすればよいですか?

この問題を解決するために解決してくれた人に感謝してください。

データ型を使用してデータを送信しようとしました。jsonpは実行中のコンピュータでも、一部のコンピュータではまだ問題があります。

答えて

0

JSONPは「JSON with Padding」の略で、異なるドメインのデータを読み込むための回避策です。これはDOMの先頭にスクリプトをロードするので、自分のドメインにロードされたかのように情報にアクセスできるため、クロスドメインの問題をバイパスできます。

、あなたは、データ型に変更するurl: $("#hdnSiteUrl").val() + 'Home/UserLogin',

試して自分のMVCプロジェクトのURLを使用していますため

dataType: 'json', 

に 'JSONP' をより明確化:

(function($) { 
var url = 'http://www.jquery4u.com/scripts/jquery4u-sites.json?callback=?'; 

$.ajax({ 
type: 'GET', 
url: url, 
async: false, 
jsonpCallback: 'jsonCallback', 
contentType: "application/json", 
dataType: 'jsonp', 
success: function(json) { 
    console.dir(json.sites); 
}, 
error: function(e) { 
    console.log(e.message); 
} 
}); 

})(jQuery); 

また、クロスドメインをALOWすることができますあなたのweb.configファイルで必要な次のコードのために別のドメインのデータを呼び出すことができます

<system.webServer> 
<httpProtocol> 
<customHeaders> 
    <add name="Access-Control-Allow-Origin" value="http://localhost" /> 
    <add name="Access-Control-Allow-Headers" value="X-AspNet-Version,X-Powered-By,Date,Server,Accept,Accept-Encoding,Accept-Language,Cache-Control,Connection,Content-Length,Content-Type,Host,Origin,Pragma,Referer,User-Agent" /> 
    <add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, OPTIONS" /> 
    <add name="Access-Control-Max-Age" value="1000" /> 
</customHeaders> 

+0

私はすでに、私はJSONPを使用しますが、まだ同じ問題に直面していることを述べました。あなたが変更しようとしている設定ファイルはタイプ400のエラーを作成していますので、今何をすることができます!前もって感謝します。 –

+0

ok "crossOrigin:true"を使用してみてくださいこの[Url-link](http://www.ajax-cross-origin.com)をチェックしてください –

関連する問題