2016-09-26 10 views
0

proxysiteによって作成されたキャッシュされたサイトへの直接リンクとして機能するHTMLファイルを作成しようとしています。ユーザーが任意のフィールドに記入することなく、URLを含むフォームを送信できる方法はありますか?ローカルのhtmlファイルに外部のPHPフォームを記入して送信することは可能ですか?

いいえ「アクセス制御 - 許可原点」ヘッダが存在している:

var params = { 
    "d" : "http://www.web.site/" 
}; 

$.ajax({ 
    url: "https://eu1.proxysite.com/includes/process.php?action=update", 
    type: "POST", 
    data: params 
}); 

それがこのエラーメッセージを返したように意図的に遮断されるようだ。そうは次のようにAJAXを介してそれを送る

要求されたリソース上でしたがって、原点「ヌル」はアクセスが許可されません。

編集:私は上記の理由で動作しません。私は上記のウェブサイトにアクセスすることができないので、私は可能な回避策を探しています。

+0

[Access-Control-Allow-Originヘッダーの仕組みは?](http://stackoverflow.com/questions/10636611/how-does-access-control-allow-origin-header-work) – Marcin

+0

'action'属性を外部ウェブサイトに設定してHTMLフォームを作成することができます。フォームを送信すると、そのサイトに移動します。しかし、クロスオリジンのセキュリティルールのために、Ajaxを使用して外部Webサイトを呼び出すことはできません。あなたのニーズに応じて、https://crossorigin.me/のようなCORSプロキシを使ってこの問題を回避することができます。 –

+0

の値を '

'の入力に入れ、 'form.submit()'をまるでユーザーがそれをやったかのように、フォームを提出してください。 – Barmar

答えて

0

「No Access-Control-Allow-Origin」ヘッダーを受信する理由は、受信側サーバーがCORSヘッダーを提供する必要があるためです。あなたはproxysiteへのアクセス権を持っている場合は、あなたのリクエストがアスタリスクは許可したいドメインである

<?php 
header("Access-Control-Allow-Origin: *"); 

を通過できるようにするには、次のヘッダーを設定する必要があります。サーバーにアスタリスクを残しておくと、すべてのドメインのすべてのローカルスクリプトからのすべての要求を受け入れます。

フィールドを入力せずにフォームを送信することについて - はい、ユーザー入力なしでデータを送信することは可能です。あなたがやっているやり方は、jQuery Ajaxメソッドを使ってデータを送信する正しい方法です。

+0

あなたの答えをありがとうございますが、全体的な問題は私がプロキシサイトにアクセスできないということです。私は可能な回避策を探しています。 – Ridir

+0

@Ridirああ、あなたが言っていることを見ている。 $ .ajax関数内の "dataType"プロパティを "jsonp"に設定してみてください。 dataTypeをjsonp(json with padding)に設定すると、ブラウザはURLの要求をjavascriptファイルのように実行します。これは、原産地なしの方針を迂回することになります。たとえば、$ .ajax関数は$ .ajax({url: ""、type: ""、 "dataType": "jsonp"、params:[]}のようになります) –

関連する問題