2011-09-16 19 views
3

通常はMVCチャップですので、jquery ajaxは通常は簡単です。私は古いwebformsプロジェクトに取り組んでいますが、jquery ajaxをローカルiisのWebメソッドと話すことができません。それはビジュアルスタジオ自身のWebサーバー上で動作します。asp.net 4 jQuery Ajaxはiisのページメソッドで動作しません

jqueryのは、次のとおりです。

//Collect data 
    var prefs = { 
     'pref_1': $('input#pref_1').val(), 
     'pref_2': $('input#pref_2').val(), 
     'pref_3': $('input#pref_3').val(), 
     'pref_4': $('input#pref_4').val() 
    } 

    //Send data via ajax 
    //Uncomment below to send requests 
    var loc = window.location.href; 
    var substr = loc.split("?"); 
    $.ajax({ 
     url: substr[0] + "/SetUserPreferences", 
     type: "POST", 
     data: JSON.stringify(prefs), 
     dataType: "json", 
     contentType: "application/json; charset=utf-8" 
    }); 

あなたは私が場所のHREFを取って、そこでの方法を探しています見ることができるように。 index.aspxページで
私が持っている:

[WebMethod] 
public static void SetUserPreferences(string pref_1, string pref_2, string pref_3, string pref_4) 
{ 
    using (lbDataContext dc = new lbDataContext()) 
    { 
     MoreBang_Preference preference = new MoreBang_Preference(); 
     preference.UserId = (int)HttpContext.Current.Session["UserId"]; 
     preference.DateSubmitted = DateTime.Now; 
     preference.Preference1 = pref_1; 
     preference.Preference2 = pref_2; 
     preference.Preference3 = pref_3; 
     preference.Preference4 = pref_4; 
     dc.MoreBang_Preferences.InsertOnSubmit(preference); 
     dc.SubmitChanges(); 
    } 
} 


私が働いているサイトはumbracoサイトです、それはウェブののHttpModulesセクションに

<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 

を持っていますAsp.Net 4統合モードで実行されています。
また、Web設定のsystem.webServerセクションのmodulesタグに
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
があります。
なぜ私は働いていないのかについて真剣に困惑しています。

寄稿者に事前に感謝します。

+0

本当に助けになるわけではありませんが、私はサーバーサイドのAjaxにWCFを使用する方が好きです。私はそれを扱うのがずっと簡単でした。 –

+0

こんにちは、ありがとう、私は通常同様の何かをするだろうが、私はこの特定のルーチン作品のセッションにアクセスする必要があります。 – Chiefy

+0

AspNetCompatibilityRequirementsAttribute属性を追加すると、サービスからのセッションへのアクセス権が与えられます。決してそれを試したことはありませんが、ドキュメンテーションはそうだと言います。 –

答えて

0

最後に、私はページメソッドの代わりにWebサービスを使用するように変更し、ページの隠しフィールドにセッション値をポストしてからWebサービスに送信しました。 idと同じくらいきれいではなく、今働いています。私はこれまでiis上で動作するように問題を抱えることはなかったので、挫折しました。

+0

は同じ問題を抱えていますが、同じ解決策で解決されました。そこにはIISの設定に関する何かがありますか? – jeegnesh

関連する問題