2016-04-23 39 views
11
var url="http://fsa.citop.in/lnct/service/signProcess.aspx"; 
var data={txtLogId: "[email protected]",txtLogPass: "xyz",hdnReqType2: "sign87162"}; 
var success=function(data, textStatus, jqXHR) { 
      console.log(data); 
     }; 

var fail=function(jqXHR, textStatus, errorThrown) { 
     console.log("Error:" + errorThrown); 
    } 
$.ajax({ 
    type: "POST", 
    url: url, 
    data:data, 
    success:success, 
    error:fail, 

}); 

Yêu cầu POST này cung cấp cho tôi lỗi, SyntaxError: Unexpected token < in JSON at position 4, trong bảng điều khiển của trang 'http://fsa.citop.in/lnct/' trong chrome.Mã thông báo không mong muốn <trong JSON tại vị trí 4

Nhưng nếu tôi sử dụng fsa.citop.in/lnct/service/signProcess.aspx (nghĩa là không http: //), điều đó sẽ cho tôi không có lỗi, nhưng không có gì xuất hiện trong dữ liệu. Ngày success yêu cầu POST, một đối tượng JSON được mong đợi. Xin vui lòng ai đó giải thích những gì đang xảy ra ở đây và làm thế nào nó có thể được giải quyết.

+2

Bạn có đang sử dụng 'JSON.parse (dữ liệu)' trong cuộc gọi lại thành công của mình không? Bạn sẽ nhận được cùng một lỗi, bởi vì hàm mong đợi một chuỗi. – Irshu

Trả lời

11

Rất có thể là do phản hồi là HTML và đang cố gắng phân tích cú pháp đó dưới dạng nội dung khác. Số < ở vị trí 4 là < đầu tiên của <!DOCTYPE html....

Bạn nên cố gắng chỉ định dataType trong cuộc gọi ajax (xem http://api.jquery.com/jquery.ajax/) và cũng làm cho signProcess.aspx trả lại nội dung nào đó hữu ích hơn (hiện tại loại nội dung phản hồi là application/json nhưng nó in HTML).

+0

kiểu dữ liệu mặc định là Đoán thông minh (xml, json, tập lệnh hoặc html) –

+0

thiết lập dataType thành văn bản đã hoạt động. Cảm ơn nhiều. –

14

Đối với những người gặp phải vấn đề này trong trình soạn thảo mã AWS Lambda, rất có thể phiên của bạn đã hết thời gian chờ.

Thử tải lại trang và đăng nhập lại. Nó sẽ giải quyết vấn đề này.

Các vấn đề liên quan