【问题标题】:Ajax error: SyntaxError: expected expression, got '<'Ajax 错误:SyntaxError:预期表达式,得到 '<'
【发布时间】:2015-05-05 01:04:49
【问题描述】:

我正在尝试从我的服务器登录到另一台服务器到我的其他站点。 但是每次都会出现这个错误。

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);
          }
        });

【问题讨论】:

    标签: ajax cross-domain


    【解决方案1】:

    JSONP 基本上是wrapping things in a script tag 并发出允许跨站点的请求(因为脚本标签没有与 AJAX 相同的限制)。

    您的页面返回的 HTML(我敢打赌 &lt; 是 HTML 标记的一部分)作为 JavaScript 对象无效。

    相反,使用CORS 以允许且合理的方式执行安全且更合理的跨站点脚本。

    注意:始终使用 HTTPS 而不是 HTTP 登录(否则人们可以 MITM 你),并且 JSONP 请求(被注入脚本标签)始终是 GET。

    【讨论】:

    【解决方案2】:

    您的其他服务器遇到错误(因此响应是错误 html 页面),或者您必须将 ajax 类型从 'jsonp' 更改为 'xml'

    【讨论】:

      猜你喜欢
      • 2019-01-11
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多