Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript XMLhttprequest返回空的responseText和readyState==4(WickedPF)_Javascript_Ruby On Rails_Http_Wicked Pdf_Responsetext - Fatal编程技术网

Javascript XMLhttprequest返回空的responseText和readyState==4(WickedPF)

Javascript XMLhttprequest返回空的responseText和readyState==4(WickedPF),javascript,ruby-on-rails,http,wicked-pdf,responsetext,Javascript,Ruby On Rails,Http,Wicked Pdf,Responsetext,所以我们在rails项目中有一个HTTP请求调用,它运行良好,一切正常。它调用controller方法并从该控制器返回值(在本例中为“true”或“false”) 现在,我们想将其导出为pdf格式,并使用gem wicked pdf格式。经过努力,由于Wicked PDF将JavaScript转换为一些本地文件,并且由于CORS,我们在调用控制器方法时遇到问题,现在我们成功地调用了具有cookie的控制器方法。因此,调用了该方法,但是,在正常情况下,responseText是空的,正如我在开始时

所以我们在rails项目中有一个HTTP请求调用,它运行良好,一切正常。它调用controller方法并从该控制器返回值(在本例中为“true”或“false”)

现在,我们想将其导出为pdf格式,并使用gem wicked pdf格式。经过努力,由于Wicked PDF将JavaScript转换为一些本地文件,并且由于CORS,我们在调用控制器方法时遇到问题,现在我们成功地调用了具有cookie的控制器方法。因此,调用了该方法,但是,在正常情况下,responseText是空的,正如我在开始时所说,它不是空的,因为它正确地构建了HTML

因此,请求是可以的,正在进入控制器方法,并且正在做所有事情,但显然这不起作用:

render :json => @status, :layout => false
我不知道为什么我找了很多关于这个的东西,我有点被卡住了。为什么这在普通项目中起作用,但是当尝试从本地文件执行所有这些时,它没有,尽管没有给出任何错误,但是rails的日志如下所示:

INFO -- : Started GET "/monitor/devicestatus_alarms/30" for ::1 at 2020-01-24 09:22:18 +0000
INFO -- : Processing by MonitorController#devicestatus_alarms as JSON
INFO -- :   Parameters: {"id"=>"30"}

INFO -- : Completed 200 OK in 45ms (Views: 0.2ms | ActiveRecord: 18.3ms)
我试图增加javascript延迟,因为在控制器中进行计算可能需要更多的时间,但什么都不需要。responseText仍然为空


此外,我们还检查了HTTP status==200,但是后来我们发现,对于本地文件,当它成功时,它总是返回状态4,它正在返回,因此显然没有错误。那么,这个请求如何访问controller方法,执行所有操作,然后不返回任何内容呢?

您是否尝试过使用AJAX调用来完成这项工作

$.ajax({
  url: "<your_url>",
  type: 'GET',
  dataType: 'text',
  crossDomain: true,
  xhrFields: {
    withCredentials: true
  }
}).then(function (data) {
  < actions here >
  }
}).always(function () {
  < always action here>
});
$.ajax({
url:“”,
键入:“GET”,
数据类型:“文本”,
跨域:是的,
xhrFields:{
证书:正确
}
}).then(功能(数据){

}
}).always(函数(){

});

JSON.stringify()
带字符串(
.html(JSON.stringify(“错误”))
)?o、 Owell是的,它没有意义,但在我们打印对象之前,我们忘记了更改它,但这并不重要,也没有任何影响,这不是问题,也不是问题的相关部分,但是的,谢谢你指出。我们需要这样做,而不是使用ajax。有关更多信息,请参见此:
$.ajax({
  url: "<your_url>",
  type: 'GET',
  dataType: 'text',
  crossDomain: true,
  xhrFields: {
    withCredentials: true
  }
}).then(function (data) {
  < actions here >
  }
}).always(function () {
  < always action here>
});