Я разрабатываю приложение phonegap, где мне нужно отправить некоторые данные из html-файла на сервер и получить ответ в ответ. Когда у меня есть все мои файлы на сервере сохранения, они работают. Когда я разделяю файлы на клиентские и серверные машины, они не работают, и насколько я понял, это связано с запросом CROSS DOMAIN POST REQUEST. Вот мой код ниже:
стороне клиента: something.html
$(document).ready(function() {
$("#login").click(function(e){
var formData = $("#loginForm").serialize();
$.ajax({
type: "POST",
url: "http://testserver.bscheme.com/rss/login.php",
crossDomain: true,
cache: false,
data: formData,
success: function(txt){
if(txt !=""){
localStorage.setItem("background", txt);
//alert(localStorage.getItem("background"));
document.location.href="logged.html";
}
else
alert("Badly Failed");
}
});
e.preventDefault();
}); });
стороне сервера: login.php
<?php
include('inc/db.php');
try
{
$userName = mysql_real_escape_string($_POST['username']);
$passcode = mysql_real_escape_string($_POST['passcode']);
if(empty($feedName)!="" && empty($feedUrl)!="") {
$result = mysql_query("SELECT id,email,password FROM user WHERE email = '".$userName."'");
$row = mysql_fetch_array($result);
//echo $userName . $row['email'];
// echo $passcode . $row['password'];
if($row['email']== $userName && $row['password'] == $passcode && $row['email']!= "" && $row['password'] != "") {
echo $row['id'];
}else{
echo "fail";
}
} else {
echo "All fields are mandatory!";
}
}
catch(Exception $e)
{
// normally we would log this error
echo $e->getMessage();
}
Как разрешить CROSS DOMNAIN POST, я знаю, что я должен отредактируйте файл php на сервере, и я добавил следующий код, но я не знаю, как работает
switch ($_SERVER['HTTP_ORIGIN']) {
case 'http://localhost/rss': case 'https://localhost/':
header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type');
break;
}
С помощью Firebug я сказать мой $ .post и это то, что у меня есть
ResponseHeaders RequestHeaders Content-Type применение/х-WWW-форм-urlencoded; кодировка = UTF-8 Accept /
Parametersapplication/х-WWW-форм-urlencoded код доступа ASD имя пользователя QWE Источник имя пользователя = QWE & кода доступа = ASD
отклика
Отклик всегда пусто. Он работает, когда все html и php находятся в локальном хосте или на моем тестовом сервере. У меня не хватает навыков php и jquery, поэтому очень сложно понять, если кто-то еще задал вопрос, я сожалею о повторении. Ty вам помочь
Возможно, вы можете использовать getJSON из jQuery в качестве запроса crossdomain. – machineaddict
Как я могу отправить данные с помощью getJSON Мне нужно отправить имя пользователя и пароль (Получил) – Surja
Не делайте этого! Теперь я вижу, что вы пытаетесь сделать. Сделайте сообщение ajax на свой собственный сервер, затем этот скрипт отправит запрос на удаленный сервер. – machineaddict