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);
}
私はデータを考えていません:値はかなり正しいです。誰かが私をまっすぐにした?
ありがとう!
これはどう:
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);
}
});
data
は、URLエンコードされた文字列またはオブジェクトのいずれかです。
data: {empid: empid},
OR
data: "empid=" + empid,
ドキュメントによると:
サーバーに送信されるデータ。まだ文字列でない場合は、クエリ文字列に変換されます。 GETリクエストのURLに追加されます。この自動処理を防ぐには、processDataオプションを参照してください。オブジェクトはキーと値のペアである必要があります。値が配列の場合、jQueryは同じキーで複数の値をシリアル化します。つまり、{foo:["bar1"、 "bar2"]}は '&foo = bar1&foo = bar2'になります。
完全な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){
}
});
これはあなたのために働くはずです。
$.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);
}
そうではありません。文字列を渡す場合は、オブジェクトリテラルを渡す必要があります。
data: {"empid" : empid}
違いを見ます? empidが何らかの値を持つ変数であると仮定すると、正常に機能するはずです。または、これを行うことができます
data: "empid="+empid
あなたの質問に対する直接の答えではありませんが、jquery呼び出しのプロジェクトの1つで使用される一般的な関数アプローチは次のとおりです
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);}
);
[〜#〜]参照[〜#〜]
$(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);
}
});
});
jSON文字列をサーバーに送信する場合
data: "{empid: " + empid + "}"
クエリ文字列パラメータを送信する場合(?empid = 123)
data: {empid : empid}
以下を使用できます。
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);
}