web-dev-qa-db-ja.com

JQuery AJAX構文

JQueryPostに変数を渡すための正しい構文を見つけようとしています。

var id = empid;

$.ajax({
    type: "POST",
    url: "../Webservices/EmployeeService.asmx/GetEmployeeOrders",
    data: "{empid: empid}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(result) {
        alert(result.d);
    }

私はデータを考えていません:値はかなり正しいです。誰かが私をまっすぐにした?

ありがとう!

8
Nick

これはどう:

var id = empid;

$.ajax({
    type: "POST",
    url: "../Webservices/EmployeeService.asmx/GetEmployeeOrders",
    data: "{empid: " + empid + "}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(result){
        alert(result.d);
        console.log(result);
    }
});
16
Jose Basilio

data は、URLエンコードされた文字列またはオブジェクトのいずれかです。

data: {empid: empid},

OR

data: "empid=" + empid,

ドキュメントによると:

サーバーに送信されるデータ。まだ文字列でない場合は、クエリ文字列に変換されます。 GETリクエストのURLに追加されます。この自動処理を防ぐには、processDataオプションを参照してください。オブジェクトはキーと値のペアである必要があります。値が配列の場合、jQueryは同じキーで複数の値をシリアル化します。つまり、{foo:["bar1"、 "bar2"]}は '&foo = bar1&foo = bar2'になります。

6

完全なajax構文

var data="abc";
       $.ajax({
            type: "GET",
            url: "XYZ",
            data: {
                "data":data,
            },
            dataType: "json",

            //if received a response from the server
            success: function( datas, textStatus, jqXHR) {

            },

            //If there was no resonse from the server
            error: function(jqXHR, textStatus, errorThrown){

            },

            //capture the request before it was sent to server
            beforeSend: function(jqXHR, settings){

            },

            //this is called after the response or error functions are finished
            //so that we can take some action
            complete: function(jqXHR, textStatus){

            }

        }); 
5
Mangy 007

これはあなたのために働くはずです。

$.ajax({
    type: "POST",
    url: "../Webservices/EmployeeService.asmx/GetEmployeeOrders",
    data: {empid: empid},
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(result) {
        alert(result.d);
}
3
Ólafur Waage

そうではありません。文字列を渡す場合は、オブジェクトリテラルを渡す必要があります。

data: {"empid" : empid}

違いを見ます? empidが何らかの値を持つ変数であると仮定すると、正常に機能するはずです。または、これを行うことができます

data: "empid="+empid

http://docs.jquery.com/Ajax/jQuery.ajax#options

1
bdl

あなたの質問に対する直接の答えではありませんが、jquery呼び出しのプロジェクトの1つで使用される一般的な関数アプローチは次のとおりです

$。proxy()メソッド

Proxyメソッドは既存の関数を受け取り、特定のコンテキストを持つ新しい関数を返します。

構文

$(selector).proxy(function,context)
$(selector).proxy(context,name)  

[〜#〜]コード[〜#〜]

dpInvokeAsync: function (serviceRequest, input, requestType, successCallBack) {
        var url = BASE_URL + serviceRequest;
        $.ajax({
            type: requestType,
            url: url,
            async: true,
            data: input,
            dataType: 'json',
            success: $.proxy(successCallBack, this),
            error:  $.proxy(this.handleFailure, this)
        });
    }


   this.dpInvokeAsync('App/ShowParts', searchCriteria, 'Post',
                      function (result) { alert(result);}
                      );

[〜#〜]参照[〜#〜]

  1. $(this)inside AJAX成功が機能しない
  2. jQueryクロスドメインAJAXリクエストメソッド
1
LCJ
  $(document).ready(function() {
  $.ajax({
    type: "POST",
    url: "Webservices/EmployeeService.asmx/GetEmployeeOrders",
    data: "{'EmployeeId':'empid'}", **<-- see the single quotes**
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
          alert(msg);
         }
  });
});
0
Srikar Doddi

jSON文字列をサーバーに送信する場合

data: "{empid: " + empid + "}"

クエリ文字列パラメータを送信する場合(?empid = 123)

data: {empid : empid}
0
Chad Grant

以下を使用できます。

var id = empid;

$.ajax({
    type: "POST",
    url: "../Webservices/EmployeeService.asmx/GetEmployeeOrders",
    data: "var1=val1&var2=val2&var3=val3&var4=val4&var5=val5",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {
        alert(result.d);
    }
0
khushwant