我正在尝试从服务器登录到另一台服务器到另一个站点。但是每次都会出现这个错误。
SyntaxError: expected expression, got '<'
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E
请帮助。
url = "http://www.example.co.uk/email/admin/index.php?Page=&Action=Login";
// console.log(url);
// return false;
postData = {ss_username:"username",ss_password:"password",Action:"login"}
$.ajax({ //update page and redirect
type: 'POST',
url: url,
// crossDomain: true,
dataType: "jsonp",
data: postData,
success: function (response) {
console.log(response);
},
error: function (response) {
console.info(response);
}
});
JSONP基本上将内容包裹在脚本标签中,并做出跨站点允许的请求(因为脚本标签没有与Ajax相同的限制)。
您的页面返回HTML(我敢打赌<
是HTML标签的一部分),它是JavaScript对象无效的。
相反,使用CORS以允许和明智的方式执行安全,更明智的跨站点脚本。
注意:始终使用https而不是http登录(否则人们可以mitm您),而jsonp请求(注入脚本标签)始终获取。
您的其他服务器会遇到错误(因此响应是错误HTML页面),或者您必须将AJAX类型从'jsonp'
更改为'xml'