私はFabric.jsを使って基本的なデスクトップの壁紙エディタを作成しています。機能の1つは、ユーザーが壁紙を共有できるようにすることです。JQuery AJAX POSTがサーバー上のデータを返さないPHP
このボタンをクリックすると、キャンバスが画像データのURL(data:image/png)に変換されます。
これはすべて問題なく動作しますが、私の問題はajax投稿にあり、データを送信していません。これは、ローカルホスト上で完璧に動作しますが、私のオンラインサーバーで実行しているときに、データを送信しません。テスト目的のために
$("#share").click(function() {
if (confirm('Are you sure you want to share your wallpaper? YES | NO')) {
// Left out the rest of the Fabric.js canvas stuff here as that works fine
var image = canvas.toDataURL('png'),
var thumb = canvas.toDataURL('png');
var formData = {'image':image, 'thumb':thumb};
$.ajax({
url: '/ajax/share.php',
type: 'post',
data: formData,
dataType: "json",
success: function(response) {
console.log(response);
}
});
}
});
、すべての私のPHPファイルをやっている結果をエコーされます。
$results = 'Image: ' . $_POST['image'] . ' Thumb: ' . $_POST['thumb'];
echo json_encode($results); exit ;
私はcontentTypeのとPROCESSDATAが偽であることとともに、JSONと正常とのデータ型の組み合わせを試してみました。もう一度、これらはすべてローカルで動作しますが、サーバー上で実行すると空白の応答があります。 contestTypeを "application/json"として指定しようとしました。
json dataTypeを使用しないと、サーバー上でhtmlページが返されます。
この問題の解決策はありますか?それはサーバーの設定や何かできますか?他の関数に使用している他のすべてのAjaxがうまく動作するので、これはちょうどそのものです。
編集:それはローカルで起動されませんが、サーバー上でこのエラーがトリガされたときに、インデックスHTMLが返され、このエラーで
error: function(xhr, status, error) {
console.log(xhr.responseText);
}
: は、私は今、アヤックスにエラーを追加しました。したがって、PHPファイルはサーバー上で起動されていません。
他にも役立つものがあります。サーバー上で、share.phpにアクセスしようとすると、ページのステータスは302になります。ただし、通常は200になります。
あなたは完全なURLパスをここで試しましたか? 'url:'/ajax/share.php''?私は 'url:http:// www.yoursite.com/ajax/share.php 'のようになります。また、ブラウザのコンソールでレスポンスコードを確認してください。 –
@Mahfuzul Alam Consoleには空白の応答が表示されます。完全なURLと全く同じ問題を試してみました。 processDataをfalseに設定しないと、ajaxはデータをPHPページにポストしませんが、インデックスhtmlコードを返します。しかし、processDataをfalseに設定すると、データはPHPで未定義のインデックスになるため、返されません。 – ncoll36