ホームページ ウェブフロントエンド jsチュートリアル Jsonpポストクロスドメインソリューション_JavaScriptスキル

Jsonpポストクロスドメインソリューション_JavaScriptスキル

May 16, 2016 pm 03:51 PM
jsonp post クロスドメイン

最近、プロジェクトでこのような問題に遭遇しました。jsonp のクロスドメインの問題に関しては、get 値は問題ありませんが、post 値は問題ありません。そこで、これに関する多くの情報をインターネットで読みました。問題は解決しました。今日は時間を割いて共有します。

説明:
http://www.t1.com/index.php サーバー URL
もちろん、これは私のローカル構成なので、私自身の対応するアドレスに変更する必要があります。

クライアントコード:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<script>

  $(function(){

      

    var url = 'http://www.t1.com/index.php';

    $.ajax({

      type:      'post',

      url:      url,

      data:      {name:'wangyulu'},

      dataType:    'jsonp',

      success:function(result){

        console.log(result);

      }

    });

      

  });

 </script>

ログイン後にコピー

サーバーコード:

1

2

3

4

5

<?php

if($_POST){

  $arr = array('name'=>$_POST['name'], 'age'=>23);

  echo json_encode($arr);

}

ログイン後にコピー

ブラウザは次のように実行されます:

送信方法が post に設定されている場合でも、Jsonp は本当に post 送信をサポートしていませんか?

苦労の末、スタックオーバーフローでこれに関する情報を見つけました。外国人も同様の問題に遭遇するようです。
http://stackoverflow.com/questions/3860111/how-to-make-a-jsonp-post-request-that-species-contenttype-with-jquery

重要なポイントは次のとおりです:

上の図を見ると、矢印の部分に変化があることがわかりました。今のところは気にしません。念のため、最初にプログラムに入れてみましょう。完了

クライアントの変更:
追加:crossDomain: true
変更: データタイプ: "json"

サーバー側の追加:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Max-Age: 1000');

実行結果は次のとおりです:

この時点で、問題は最終的に解決されたことがわかりましたが、リクエスト時間が非常に長いことが詳細に観察されました、、、外国人は効率的な解決策を持っていないようです、

最後に言いたいのは、POST モードで JSONP を完全にサポートするのは非常に難しいということです。これには時間がかかります。

上記の内容は他の技術的な点に関連している可能性がありますので、興味があればご自身で勉強してください。うまく書かれていない場合でも、文句を言わないでください。

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP セッションのクロスドメイン問題の解決策 PHP セッションのクロスドメイン問題の解決策 Oct 12, 2023 pm 03:00 PM

PHP セッションのクロスドメイン問題の解決策

ページにジャンプするパラメータを含む PHP の POST メソッドの簡単な分析 ページにジャンプするパラメータを含む PHP の POST メソッドの簡単な分析 Mar 23, 2023 am 09:15 AM

ページにジャンプするパラメータを含む PHP の POST メソッドの簡単な分析

投稿が PHP で送信されたかどうかを確認する方法 投稿が PHP で送信されたかどうかを確認する方法 Mar 21, 2023 pm 07:12 PM

投稿が PHP で送信されたかどうかを確認する方法

Pythonリクエストポストの使い方 Pythonリクエストポストの使い方 Apr 29, 2023 pm 04:52 PM

Pythonリクエストポストの使い方

Vue でクロスドメインリクエストを行うにはどうすればよいですか? Vue でクロスドメインリクエストを行うにはどうすればよいですか? Jun 10, 2023 pm 10:30 PM

Vue でクロスドメインリクエストを行うにはどうすればよいですか?

Java はどのようにして http リクエストを開始し、ポストを呼び出してインターフェースを取得するのでしょうか? Java はどのようにして http リクエストを開始し、ポストを呼び出してインターフェースを取得するのでしょうか? May 16, 2023 pm 07:53 PM

Java はどのようにして http リクエストを開始し、ポストを呼び出してインターフェースを取得するのでしょうか?

NGINXリバースプロキシがHTMLページのPOSTリクエストに対して405を返す問題の解決方法 NGINXリバースプロキシがHTMLページのPOSTリクエストに対して405を返す問題の解決方法 May 22, 2023 pm 07:49 PM

NGINXリバースプロキシがHTMLページのPOSTリクエストに対して405を返す問題の解決方法

Flask-CORS を使用してクロスドメインのリソース共有を実現する方法 Flask-CORS を使用してクロスドメインのリソース共有を実現する方法 Aug 02, 2023 pm 02:03 PM

Flask-CORS を使用してクロスドメインのリソース共有を実現する方法

See all articles