如何跨域使用ajax?

时间:2011-11-20 12:39:04

标签: javascript php jquery ajax dns

我在这里发布我的代码。(我将jquery添加到我的网页中)

var dataString ='username='+ username + '&password=' + password; 
//alert (dataString);return false; 

$.ajax({ 
        type: "POST", 
        url: "http://hisencha.sinaapp.com/login.php", 
        data: dataString, 
        success: function(data) { 

          if(data=='success'){
            window.location.href='list.html';
          }
          else{
            alert(data);
          };
        } 
      }); 

以上是javascript的一部分

这是php(演示)

<?php
if ($_POST['username']=='aaa' && $_POST['password']=='aaa')
{
  echo 'success';
}
else
{
  echo 'error';
}
?>

我现在可以做什么?以及如何解决跨越域名的错误。

谢谢,谢谢!

4 个答案:

答案 0 :(得分:1)

是的,您可以使用JSONP来完成它。这是jQuery的一些示例:

 $.ajax({ 
     type: "POST", 
     url: "http://hisencha.sinaapp.com/login.php?callback=?", 
     data: dataString,
      dataType: 'JSONP',
     success: function(data) { 

       if(data=='success'){
         window.location.href='list.html';
       }
       else{
         alert(data);
       };
     } 
   });

和PHP:

<?php
$response = array(
     'something' => 'something'
);
echo $_GET[['callback'].'('.json_encode($response).')';
?>

答案 1 :(得分:0)

没有办法跨域使用ajax。出于安全原因,它被阻止了。

答案 2 :(得分:0)

你可以用JSONP做到这一点。 example

答案 3 :(得分:0)

有很多例子可以使用AJAX-CROSS-DOMAINProxy Handle