Javascript 从JS到PHP;还有一个CORS问题(似乎是)

Javascript 从JS到PHP;还有一个CORS问题(似乎是),javascript,php,ajax,construct,Javascript,Php,Ajax,Construct,社区早安 目前,我正在用Javascript编写一个插件(一个名为“Construct 2”(scirra.com)的开发工具的帐户管理),它使用PHP后端并通过AJAX与之通信 当后端脚本仅包含简单任务时,如 <?php header("Access-Control-Allow-Origin:*"); // Allow all origins $InputAction = $_POST["Action"]; // Eventhandler if ($InputAction == "R

社区早安

目前,我正在用Javascript编写一个插件(一个名为“Construct 2”(scirra.com)的开发工具的帐户管理),它使用PHP后端并通过AJAX与之通信

当后端脚本仅包含简单任务时,如

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

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

if ($InputAction == "Register") {
      echo("-400") } ?>
我用于上述错误的代码:

<?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方面的专家,否则我认为这里的一些人可以帮助我指出我的错误所在。我愿意学习,所以如果我犯了一个常见的错误,请告诉我:s

祝你有美好的一天, 棕褐色

编辑:
这是JS部分(重新发布的东西从第115行开始-这是C2的完整JSSDK脚本,很抱歉-但至少是完整的;)

你必须使用jsonp

我给你一个Jsonp使用的例子,希望这能帮助你

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

你必须使用jsonp

我给你一个Jsonp使用的例子,希望这能帮助你

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

您还没有提到ajax代码。。ajax请求也是从同一个url发起的,还是独立的

您没有提到ajax代码。。ajax请求也是从同一个url发起的,还是独立的

您是否尝试过
标题('Access-Control-Allow-Origin:http://192.168.0.14:50001');?您是否尝试过
标题('Access-Control-Allow-Origin:http://192.168.0.14:50001');?来自另一个位置。除非它是一个我愿意免费发布的插件,否则我想把“*”作为源代码。(我更新了第一篇帖子,JS现在包含在底部)分开,问题是关于CORSYes的,但我没有为此在第一行设置CORS吗?我是在做一些根本错误的事情,还是我只是在某个地方犯了一个思维错误?从另一个地方。除非它是一个我愿意免费发布的插件,否则我想把“*”作为源代码。(我更新了第一篇帖子,JS现在包含在底部)分开,问题是关于CORSYes的,但我没有为此在第一行设置CORS吗?我是在做一些根本错误的事情,还是我只是在某个地方犯了一个思维错误?谢谢你的回答——当我只想返回一个数值时,仍然需要JSONP吗?如果没有JSONP,它可以在另一个插件中工作-但只有当PHP部分变得更“复杂”时,我才得到错误:/n不,你没有,这就是CORS的意思,谢谢你的回答-当我只想返回一个数值时,还需要JSONP吗?在没有JSONP的情况下,它在另一个插件中工作——但只有当PHP部分变得更“复杂”时,我才得到错误:/n不,你没有,这就是CORS的用途