将 JSON 和 HTTPRequest 发送到服务器 AJAX



我正在尝试将json数据和Http headers发送到服务器

App.LoginController = Ember.ObjectController.extend(
{
    username: '',
    password: '',
    actions: {
        login: function(){
            username = this.get('username');
            password = this.get('password');
            // alert("User: "+ username + " Pass: " + password);
    
            var loginData = {"code":username, "passkey":password};
            loginData = JSON.stringify(loginData);
            // alert(loginData);
            var timeStamp = getTimeStamp();
            // alert(timeStamp);
    
            $.ajax({
                url: 'http://192.168.254.222:8080/project/auth/login',
                type: 'POST',
                beforeSend: function (request)
                {
                   request.setRequestHeader("token", authToken);
                },
                data: loginData,
                dataType: 'json',
                contentType: 'application/json',
                success: function(data) {
                    var returned_data = data;
                    console.log(returned_data);
                    console.log(returned_data.error); 
                    alert('yey!');
                },
                error: function(xhr, status, error){
                var err = eval("(" + xhr.responseText + ")");
                alert(err.Message);
            }
        });
    }
}
});
  1. 但变量err返回未定义
  2. 我也不确定如何将多个HttpRequest headers发送到服务器,同时获取HttpReponse headers.
  3. 铬给了我这个:

拒绝负载铬 extension://nhjloagockgobfpopemejpgjjechcpfd/js/jquery.min.map。资源必须在web_accessible_resources清单密钥中列出以便由扩展之外的页面加载。本地主机/webui/:

获取铬 extension://invalid/

除此之外,我在Firefox中没有收到任何错误消息

来自 AJAX 文档

dataType - 您希望从服务器返回的数据类型。希望您返回 json 响应

检查字符串authToken

 beforeSend: function (request)
 {
   request.setRequestHeader("token", authToken); 
 }

同时添加.ajaxComplete(function( event, xhr, settings ) ,看看你在这里得到了什么

此外,对于设置HttpHeader,您可以编写服务器代码,具体取决于您使用的技术

我写下面是为了 ASP.Net

 response.Content.Headers.Add("some_header", "Value");

在jQuery ajax成功回调中阅读此内容

     $.ajax({
            url: 'http://192.168.254.222:8080/project/auth/login',
            type: 'POST',
            beforeSend: function (request)
            {
               request.setRequestHeader("token", authToken);
            },
            data: loginData,
            dataType: 'json',
            contentType: 'application/json',
            success: function(data, textStatus, request) {
                var returned_data = data;
                alert(request.getResponseHeader('some_header'));
            },
            error: function(xhr, status, errMsg){
            alert(errMsg);
        }
    });        

最新更新