我有这样的ajax调用:
$.ajax({
type: "POST",
url: "www.something.com/login.php",
cache:false,
dataType: "json",
data: {
username: $('#user').val(),
password: $('#pass').val()
},
success: function(response)
{
localStorage.setItem('user',response.results[0].user);
localStorage.setItem('company',response.results[0].company);
}
});
这不起作用,因为我正在尝试连接到与我的文件不在同一根目录的脚本,此PHP文件位于外部服务器上。
如何使用JSONP
来使此脚本正常运行?
答案 0 :(得分:1)
当然可以。 JSON和JSONP之间的唯一区别是JSONP包含一个函数名称;
{ "x": "hello" } // JSON
foo({ "x": "hello" }); // JSONP.
答案 1 :(得分:0)
您需要通过网址变量传递信息。
type: "GET",
url: "www.something.com/login.php?login="+username+"&password="+password,
然后在服务器端:
$_GET["username"];
$_GET["password"];
但是现在我已经告诉过你了,请不要这样做以获得密码和登录!这是非常不安全的!
相反,创建一个本地PHP文件,与后端的其他网站共享数据。如果您不能这样做,请使用iframes
并使用原始方法。
另一种方法是使用cURL。 cURL允许您像在浏览器页面上一样登录。它不是很快,但它在你没有太多控制权并且没有API的网站上运行良好。
答案 2 :(得分:0)
试试这个......
$.ajax({
type: "POST",
url: "www.something.com/login.php",
cache:false,
dataType: "jsonp",
crossDomain: true,
data: {
username: $('#user').val(),
password: $('#pass').val()
},
success: function(response)
{
localStorage.setItem('user',response.results[0].user);
localStorage.setItem('company',response.results[0].company);
}
});