2017-05-31 14 views
0

私はAJAXメソッド(jQuery)を使用して、いくつかの文字列化されたJSONデータと共にASP.NET WEB API(2)にPDFドキュメントをPOSTしようとしています。AJAXポストPDFドキュメントとJSONデータ

JAVASCRIPT:

​​

ASP.NETのWeb API:

[HttpPost] 
    [Route("submit")] 
    public string SubmitTemplate(SubmitTemplate template) 
    { 
     return "a thing happened"; 

    } 

SubmitTemplateモデル:

郵便配達このメソッドの動作を使用して
public class SubmitTemplate 
    { 
     public string json { get; set; } 
     public string pdf { get; set; } 
    } 

ここでは動作しません、私の方法があります(スクリーンショットを参照してください)上のAJAXメソッドを使用していません。 この情報が役立つ場合は、モバイルアプリケーション(クロスドメイン)用です。

すべてのヘルプは非常に高く評価されています! ありがとうございます。

(これは郵便配達の構成方法の画像です:screenshot hosted on imgur

EDIT:pdfDataはjsPDF(doc.output)で作られたPDFファイルですので、私はあなたが使用してPDF文書を開いたかのように文字列だと思いますメモ帳(++)。

+0

コンソールにエラーがありますか? 'pdfData'にはどのような種類のデータがありますか?ファイルであれば、シリアル化できないため、問題の原因となる可能性のあるバイナリデータを想定します。 –

+0

@RoryMcCrossanいいえコンソールにエラーはありませんが、ネットワークタブを使用すると、データが送信されます。私も私の質問を編集しました。だからバイナリデータである可能性は非常に高いですが、AJAXを使ってこのデータをどのように送るのでしょうか? – lordvlad30

答えて

0

わかりましたので、私は、これはjQueryの/ JavaScriptの要求は今どのように見えるかで、文字列としてサーバにすべてのデータを送信することができました:

var obj = { json: stringData, pdf: pdfData }; 

$.ajax({ 
     url: url, 
     headers: header, 
     data: obj, 
     contentType: "application/x-www-form-urlencoded", 
     method: 'POST', 
     dataType: "json" 
    }).success(function (data, textStatus, jqXHR) { 
     console.log("succes"); 
    }).error(function (jqXHR, textStatus, errorThrown) { 
     console.log("error"); 
    }); 

サーバ側は同じまま。

次のステップでは、文字列をPDFファイルに変換し直しています(私はこの2日間を費やさないといいでしょう:))。

+0

pdffileを文字列に変換するのはどうしてですか?あなたのJSコードの 'FormData'を使って' HttpPostedFileBase'にバイナリデータとして送ります。 –

+0

@RoryMcCrossan何らかの理由でフォームデータに問題がありました.PDFはBase64に変換されず、この方法で送信されません。これは、base64文字列のサイズが大きくなっても機能します。私(そしてチーム)もタイムリミットを持っています。今は最良の解決策ではないにしても、私たちは最終的に動くことができます。 – lordvlad30

+0

プロジェクトに時間がかかる場合はFormDataで試してみます。助けてくれてありがとう – lordvlad30

関連する問題