'JQuery AJAX syntax
I am trying to find the correct syntax to pass a varible to my JQuery Post.
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);
}
I don't think the data: value is quite right. Someone set me straight?
Thanks!
Solution 1:[1]
How about this:
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);
}
});
Solution 2:[2]
Complete ajax syntax
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){
}
});
Solution 3:[3]
data can either be a URL encoded string or an object:
data: {empid: empid},
OR
data: "empid=" + empid,
The docs say:
Data to be sent to the server. It is converted to a query string, if not already a string. It's appended to the url for GET-requests. See processData option to prevent this automatic processing. Object must be Key/Value pairs. If value is an Array, jQuery serializes multiple values with same key i.e. {foo:["bar1", "bar2"]} becomes '&foo=bar1&foo=bar2'.
Solution 4:[4]
This should work for you.
$.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);
}
Solution 5:[5]
It's not. You're passing a string, you should be passing an object literal,e.g.
data: {"empid" : empid}
See the difference? Assuming empid is a variable with some sort of value, that should work fine. Alternatively you can do this
data: "empid="+empid
Solution 6:[6]
Though not a direct answer to your question, following is the common function approach used in one of our projects for jquery calls
The Proxy method takes an existing function and returns a new one with a particular context.
Syntaxes
$(selector).proxy(function,context)
$(selector).proxy(context,name)
CODE
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);}
);
REFERENCES
Solution 7:[7]
$(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);
}
});
});
Solution 8:[8]
if you want to send a JSON string to the server
data: "{empid: " + empid + "}"
if you want to send querystring params (?empid=123)
data: {empid : empid}
Solution 9:[9]
you can use the following.
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);
}
Solution 10:[10]
function getdata(){
$.ajax({
url:'sample.html',
type:'get',
dataType:'text',
success: succesfun,
error: errorfun,
complete:function(xhr, status){
console.log("your function is success");
}
});
}
function succesfun(hello){
console.log("Success");
$('#result').append(hello);
}
function errorfun(){
console.log("Error");
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
