$ .ajax POSTのjavascriptでnull値を削除する

私は持っています

var pageData = {
query: null,
pageNumber: 0,
pageSize: 30};

私はアヤックスを得るとき:

$.ajax({
    type: 'GET',
    url: '/Ajax/GetSuggestions',
    data: pageData,
    success: function (response) {}

The request show in firebug:
http://localhost:31198/Ajax/GetSuggestions?query=null&pageNumber=1&pageSize=30

サーバー側(ASP .NET MVC3)では、nullデータではなくstringでquery =
nullを受け取りました(必要なもの)。
どのようにnull値を削除するjavascriptの削除メソッドを使用せずにそれを修正することはできますか?

ベストアンサー

データを「ワイヤーで」送信するには、複数の方法があります。フォームデータをサーバーに送信するための標準的な方法は、URLエンコーディングです。
2番目の方法は、JSONオブジェクトを送信することです。
(送信の詳細は、JSONがURLエンコードされていることですが、これは送信の詳細です).3番目の方法はXMLを使用することです。

@ jfriend00が彼の答えで示しているように、urlエンコーディングを使って
“null”値を送るための複数の、ハッキリな方法があります。サーバー側のスタックが最もよくサポートするスタックを使用する必要があります。

Re: why the string “null” What’s happening is
that the Javascript value null needs to be converted to a
value that can be sent via HTTP (“over the wire”). The default way
to do that is to use the string null. The problem
is that the url encoding scheme only sends things as strings. So it
doesn’t have an automatic way to send the value null vs teh string
null. The usual work around is an empty string, “”.

しかし、これは文字列 “”がほとんどのコンピュータ言語の値 null
と等しくないため、サーバー側で問題を引き起こす可能性があります。したがって、適切な比較やコンバージョンを行う必要があります。例えば、サーバーソフトウェアで==
false しますか?

のデータ符号化のためのJSONを使用する他の技術である。</強いです>

JSON directly supports a null value. It is is supposed
to transmit it as null. See JSON spec (not so obvious, search the page for
null) and IBM docs

JSONでnullデータを受け取る方法は、裸の null です。
JSONを使用している場合は、文字列nullを受け取らないことに注意してください.JSONキーワードnullを受け取ります。あなたのJSON受信機/デコーダはその違いを知るべきです。そうでなければ、それは誤りです。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です