我正在处理将图片上传到Facebook的过程。因为我想在请求中上传多张图片,我想通过刷新从Facebook api返回的图片对象来更新上传图片的状态。我正在使用flush()和ob_flush()。 我的代码:
public static function response($data, $status = 200) {
if (!headers_sent()) {
header("HTTP/1.1 " . $status . " " . self::getRequestStatus($status));
header('Content-type:application/json;charset=utf-8');
}
echo json_encode($data, JSON_UNESCAPED_SLASHES);
flush();
ob_flush();
}
我在浏览器(谷歌浏览器)上运行请求。它工作正常,我得到第一个内容
{"data":[{"id":"123456...}]}
几秒钟后,我得到了下一个内容。现在我发送请求vj ajax请求到服务器triyng。请求:
var sendRequest = function (path, method, parameters, handler) {
$.ajax({
url: path,
data: parameters,
type: method,
success: function (data) {
if (data.data)
data = data.data;
handler(data);
},
error: function (xhr, ajaxOptions, thrownError) {
ErrorsManager.showError(xhr.responseText == '' ? '' : JSON.parse(xhr.responseText).error);
handler(null);
}
});
};
如果我发送一张图片,它的工作正常。
但如果我发送2张图片,则返回unexpected error <
并且刷新不起作用(我可以通过使用phpStorm调试看到)
我觉得它与标题有关。我试图将标题更改为application/octet-stream
,但它没有帮助。