2009-04-23 64 views
5

Tôi đang cố gắng tìm cú pháp chính xác để chuyển một biến cho Bài đăng JQuery của tôi.Cú pháp JQuery AJAX

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

Tôi không nghĩ rằng dữ liệu: giá trị là hoàn toàn đúng. Ai đó đặt tôi thẳng?

Cảm ơn!

Trả lời

9

Làm thế nào về điều này:

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

data có thể là một chuỗi URL được mã hóa hoặc một đối tượng:

data: {empid: empid}, 

HOẶC

data: "empid=" + empid, 

Các tài liệu nói:

dữ liệu được gửi đến máy chủ. Nó được chuyển thành chuỗi truy vấn, nếu chưa phải là một chuỗi. Nó được nối vào url cho các yêu cầu GET. Xem tùy chọn processData để ngăn việc xử lý tự động này. Đối tượng phải là cặp khóa/giá trị. Nếu giá trị là một mảng, jQuery nối tiếp nhiều giá trị với cùng một khóa, tức là {foo: ["bar1", "bar2"]} sẽ trở thành '& foo = bar1 & foo = bar2'.

2

Điều này sẽ phù hợp với bạn.

$.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); 
} 
0
$(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); 
     } 
    }); 
}); 
1

Nó không phải. Bạn đang truyền một chuỗi, bạn nên chuyển một đối tượng theo nghĩa đen, ví dụ:

data: {"empid" : empid} 

Xem sự khác biệt? Giả sử empid là một biến với một số loại giá trị, điều đó sẽ hoạt động tốt. Hoặc bạn có thể làm điều này

data: "empid="+empid 

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

0

nếu bạn muốn gửi một chuỗi JSON đến máy chủ

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

nếu bạn muốn gửi chuỗi truy vấn params (? Empid = 123)

data: {empid : empid} 
0

bạn có thể sử dụng các mục sau.

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

Mặc dù không phải là một câu trả lời trực tiếp câu hỏi của bạn, sau đây là cách tiếp cận chức năng phổ biến được sử dụng trong một trong các dự án của chúng tôi cho jquery gọi

$.proxy() Method

Phương pháp Proxy mất một chức năng hiện có và trả về một cái mới với một ngữ cảnh cụ thể.

Câu lệnh

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

THAM KHẢO

  1. $(this) inside of AJAX success not working
  2. jQuery Cross-Domain AJAX Request methods
Các vấn đề liên quan