2014-02-17 29 views
0

工作請參考下面的代碼

var pdf="xxxxxxx"; 

$.ajax({ 
      type: "post", 
      url: "/Corporate/SampleChangeSummary/PDF", 
      data: JSON.stringify(pdf), 
      contentType: 'application/json', 
      dataType: 'json', 
      error: function (status, xhr) { 

      } 
     }); 


[HttpPost] 
     public ActionResult PDF(object pdf) 
     { 
....... 
} 

但它返回PDF爲空。問題是什麼?我的代碼中有任何語法錯誤?

回答

0

試試這個:

$.ajax({ 
    type: "post", 
    url: "/Corporate/SampleChangeSummary/PDF", 
    data: JSON.stringify({pdf: pdf}), 
    contentType: 'application/json', 
    dataType: 'json', 
    error: function (status, xhr) { } 
}); 

ASP.NET MVC需要您發送「鍵 - 值」 JSON對象,因此它可以綁定相應。另外,將object pdf更改爲string pdf

+0

不工作.... – SivaRajini

+0

另外,試試吧: 'contentType:'application/json; charset = utf8'' –

+0

如果這不起作用,那麼你在做的事情真的很奇怪。 –

1

我認爲contentType是造成這個問題的原因。在你的腳本中,你告訴你的$.ajax()它正在發送JSON字符串,但你發送了一個.pdf。相反,只需刪除contentType行並嘗試。

其次,dataType: 'json'告訴你的$.ajax()它期待在JSON格式的響應。如果這就是你正在做的,那麼你不必擔心那條線。

編輯:

找到更多信息 - 如果你想保持contentType然後,修改這個:contentType: application/pdf',,並在你的$.ajax()被髮送到你的PHP文件中添加header('Content-type: application/pdf');

0

嘗試財產以後這樣

$.ajax({ 
     type: "POST", 
     url: '/Corporate/SampleChangeSummary/PDF', 
     data: { pdf: JSON.stringify(pdf) }, 
     success: function (data) { 
        //do somthing with the result 
        }, 
     error: function (error) { 
        alert('Please try again!'); 
       } 
     }); 
0
var pdf="xxxxxxx"; 

    $.ajax({ 
     type: "post", 
     url: "/Corporate/SampleChangeSummary/PDF", 
     data: { "pdf" : pdf }, 
     dataType: 'json', 
     error: function (status, xhr) { 

     } 
    }); 


    [HttpPost] 
    public ActionResult PDF(object pdf) 
    { 
     ....... 
    } 

你不需要字符串化你的PDF,因爲它已經是字符串嘗試直接把它傳遞給控制器​​。