2016-04-26 11 views
2

おはようございます、JSからPHPへ;

現在PHPのバックエンドを使用するJavascriptでプラグイン(「コンストラクト2」(scirra.com)と呼ばれる開発ツールのアカウント管理)を書いています。 AJAX経由で通信します。バックエンドのスクリプトのみ

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

$InputAction = $_POST["Action"]; // Eventhandler 

if ($InputAction == "Register") { 
     echo("-400") } ?> 

すべてが正常に動作します...のような、単純なタスクが含まれてい

。しかし、私は少しで、私にはしたかった、より複雑なものを置くとき、Imは常にCORS拒否を取得:

XMLHttpRequest cannot load http://api.proxy.wtf/debug.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.0.14:50001' is therefore not allowed access. The response had HTTP status code 500. 

私は上記のエラーのために使用されるコード:

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

require('includes/config.php'); // Prerequisite 

/** Numeric callbacks (!negative values!) 
-200 Registration successful; validation mail sended 
-250 Username OK 

-300 Username too short 
-301 Username already in use 
-302 Password too short 
-303 Invalid email address 
-304 Email already in use 
-305 Error while registration 

-400 Illegal request 
**/ 

$InputAction = $_POST["Action"]; // Eventhandler 

$InputUsername = $_POST["Username"]; // Requesting username 
$InputMailaddress = $_POST["Mailaddress"]; // Requesting mail address 
$InputPassword = $_POST["Password"]; // Requesting password 

if ($InputAction == "Register") { // Action: Register 
    if(strlen($InputUsername) < 3){ // Check Username length 
     $error[] = 'Username is too short.'; 
     echo("-300"); 
    } else { // Check if username already exists 
     $stmt = $db->prepare('SELECT username FROM members WHERE username = :username'); 
     $stmt->execute(array(':username' => $InputUsername)); 
     $row = $stmt->fetch(PDO::FETCH_ASSOC); 
     echo("-250"); 

     if(!empty($row['username'])){ // If username already taken 
     $error[] = 'Username provided is already in use.'; 
     echo("-301"); 
     } 
    } 
} 
else { 
    echo("-400"); 
} 
?> 

は誰かのアイデアを持っています私は間違って何をしていますか?構文にはエラーが含まれていません(私が見る限り)。私はPHP/AJAXの専門家がいない限り、私はここでいくつかの心が私の間違いがどこに/私を助けることができると思う。 Imは学ぶために喜んで - Imは一般的な間違いのようなものをやっている場合ので、私に教えてください。■

は素晴らしい一日を持って、 タンを

編集: HERESにhttp://pastebin.com/iABkRmt0(reuqestingものがラインから始まるJS部分〜 115 - そのC2のための完全なJS SDKスクリプト、そのため申し訳ありません - しかし、少なくともその完全な;))

+0

あなたは 'header( 'Access-Control-Allow-Origin:http://192.168.0.14:50001');'を試したことがありますか? – Chay22

答えて

-1

あなたはJSONPを使用する必要があり、

私はあなたにJSONPの使用例を与えているが、この意志を願っていますヘルプu

$.ajax({ 
    url: "http://data.acgov.org/resource/k9se-aps6.json?city=Alameda", 
    jsonp: "$jsonp", 
    dataType: "jsonp" 
}).done(function(data) { 
    console.log("Request received: " + data); 
}); 
+0

あなたの答えをありがとう - 私は数値を返すだけのときにJSONPはまだ必要ですか? JSONPがなければ別のプラグインで動作しますが、PHPの部分がもう少し複雑になった場合にのみエラーが発生します:/ –

+0

CORSの意味は –

-1

あなたはajaxコードについて言及していません。同じURLから開始されたAjaxリクエストですか、それとも別ですか?

+0

です。そのプラグインを無料で公開することを誓うのでない限り、私は "*"を起点にしたいと思っています。 (私は最初のポストを更新しました、JSは今底に含まれています) –

+0

別名、質問はCORSについて –

+0

はい、しかし、私はCORSを*の最初の行に設定していませんか?根本的に何かをやっているのですか、どこかに間違いがありますか? –