[英]Jquery ajax success response is string not javascript object
我正在對我的Rails應用程序(所有在localhost上運行)進行jQuery AJAX調用,該應用程序正在使用Javascript進行響應。 javascript正在運行,因為我收到了警報。 但是,我想讀取js.erb文件中的my_var變量。 但是,當我嘗試查看success函數的data參數時,它將數據視為字符串。 所以做data.my_var是未定義的。
js.erb文件
var my_var = "hi";
alert('this ran');
JavaScript的
$.ajax({
url: "/a/validate?a_id=" + "<%= params[:id] %>",
context: this,
dataType: "script",
data:
{
json_a: JSON.stringify(this.a),
model_to_validate: model,
target_class: target_class,
current_class: current_class
},
success: function (data, textStatus, jqXHR) {
if(!this.orderFormViewed) {
this.orderFormViewed = data.order_block_opened;
}
},
error: function (data) {
console.log("error in ajax validate call");
debugger;
}
})
試圖改變自己dataType
以json
,如果你只需要得到一個對象,並確保你的服務器返回一個JSON。
那是因為這正是你告訴它使用dataType: "script"
- 看看下面的dataType
選項。 腳本在它自己的上下文中運行,所以你不會看到那個變量(我相信)。 如果你想要那套,你將需要以不同的方式進行交流。 或者如果你只是需要數據發送json
。
https://api.jquery.com/jQuery.ajax/
“script”:將響應評估為JavaScript並將其作為純文本返回。 通過將查詢字符串參數“_ = [TIMESTAMP]”附加到URL來禁用緩存,除非緩存選項設置為true。 注意:這會將POST轉換為GET以獲取遠程域請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.