2011-08-21 3 views
1

다른 페이지에서 리디렉션되고 쿼리 문자열이있는 웹 페이지가 있습니다. 이제이 페이지는 JQuery AJAX 호출을 호출하여 다른 작업을 수행합니다. http://localhost:1041/Inventory/Inventorydetail.aspx?invoiceid=3JQuery Ajax Post를 호출하는 방법 쿼리 문자열 URL

지금이 페이지는 그리드에서 레코드를 삭제하기 위해 AJAX 포스트를 호출 :

페이지 URL은 같다. 내가 전화 할 때

  $(".DeleteInvoiceLine").click(function() { 
      //Get the Id of the record 
      var record_id = $(this).attr("id"); 
      var loc = window.location; 
      // Ask user's confirmation 
      if (confirm("Do you want to delete this record?")) { 
       $.ajax({ 
        type: "POST", 
        url: loc + "/DeleteInvoiceLineEntry", 
        //Pass the selected record id 
        data: "{'args': '" + record_id + "'}", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function(msgstr) { 
         var msg = $("#ctl00_ContentPlaceHolder1_success"); 
         msg.html(msgstr.d); 
         msg.show(); 

        } 
       }); 
      } 
      return false; 
     }); 

그래서 AJAX는 Page_Load 이벤트 대신에 WebMethod "DeleteInvoiceLineEntry"의라고 부른다.

쿼리가 전달되지 않은 페이지가 정상적으로 작동하면 잘 동작합니다.

Qerystring 데이터 초기화가있는 페이지에서 AJAX 호출을 호출하는 방법을 알려주십시오.

나는 그것을 URL을 작동하지 않는 정적 URL 를 전달하는 두 방법을 시도 : "Inventorydetail.aspx invoiceid = 3/DeleteInvoiceLineEntry?"

작업

(페이지에는 쿼리 문자열 데이터가없는 경우) url : "Inventorydetail.aspx/DeleteInvoiceLineEntry"

빠른 도움에 감사드립니다.

답변

0

아약스를 호출 할 때 쿼리 문자열을 첨부하지 마십시오. 그것은 아약스가 json 데이터를 전달하기 위해 실제로 쿼리 문자열을 사용하는 것처럼 통신을 혼란시킬 것이다. invoiceid를 ajax에 전달하려면 json 데이터에 포함 시키십시오.

+0

쉰, 여기에는 두 가지가 있습니다. 하나는 InvoiceID이고 다른 하나는 InvoiceLineID입니다. InvoiceID는 다른 페이지의 쿼리 문자열에 전달되어 그리드의 invoiceData를 채우고 사용자가 그리드에서 행 (InvoiceLine)을 삭제하면 InvoiceLineId가 Ajax 호출의 JSON 데이터에 전달됩니다 . 그래서 내 질문은 여기 페이지가 이미 querystring을 가지고 있다면 아약스 게시물을 호출 할 수 있습니다. – Rajesh

0

변경

var loc = window.location; 

태성 신 언급 한 바와 같이

var loc = window.location.href.replace(window.location.search, ''); 

에. URL의 검색어 문자열로 인해 애플리케이션이 혼란 스럽습니다.

관련 문제