Синтаксис JQuery AJAX - PullRequest
       34

Синтаксис JQuery AJAX

8 голосов
/ 23 апреля 2009

Я пытаюсь найти правильный синтаксис для передачи переменной в мой пост JQuery.

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);
    }

Я не думаю, что данные: ценность совершенно правильная. Кто-то поправил меня?

Спасибо!

Ответы [ 9 ]

13 голосов
/ 23 апреля 2009

Как насчет этого:

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);
    }
});
6 голосов
/ 23 апреля 2009

data может быть строкой в ​​кодировке URL или объектом:

data: {empid: empid},

OR

data: "empid=" + empid,

Документы говорят:

Данные для отправки на сервер. Он преобразуется в строку запроса, если это еще не строка. Он добавляется в URL для GET-запросов. См. Параметр processData, чтобы предотвратить эту автоматическую обработку. Объект должен быть парой ключ / значение. Если значение является массивом, jQuery сериализует несколько значений с одним и тем же ключом, т.е. {foo: ["bar1", "bar2"]} становится '& foo = bar1 & foo = bar2'.

5 голосов
/ 25 марта 2018

Полный синтаксис 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){

            }

        }); 
2 голосов
/ 23 апреля 2009

Это должно работать для вас.

$.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);
}
1 голос
/ 06 марта 2014

Хотя это и не прямой ответ на ваш вопрос, ниже приводится общий подход к функциям, используемый в одном из наших проектов для вызовов jquery

$. 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. $ (это) внутри успеха AJAX не работает
  2. JQuery междоменный AJAX-запрос
1 голос
/ 23 апреля 2009

Это не так. Вы передаете строку, вы должны передавать объектный литерал, например,

data: {"empid" : empid}

Видишь разницу? Предполагая, что empid - это переменная с каким-то значением, которая должна работать нормально. Или вы можете сделать это

data: "empid="+empid

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

0 голосов
/ 10 июня 2010

вы можете использовать следующее.

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 голосов
/ 23 апреля 2009

, если вы хотите отправить JSON-строку на сервер

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

если вы хотите отправить параметры строки запроса (? Empid = 123)

data: {empid : empid}
0 голосов
/ 23 апреля 2009
  $(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);
         }
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...