Don*_*Den 9 php sugarcrm oauth-2.0
我升级了sugar7.8之后收到了这个错误,它调用了我的filedownload.
{"error":"need_login","error_message":"No valid authentication for user."}
Run Code Online (Sandbox Code Playgroud)
经过一些调查发现,糖升级了对OAuth的API调用.以下是我的CODE:
api.fileDownload(api.buildURL("Quotes/" + model.get("id") + "/pdf/download?OAuth-Token=" + api.getOAuthToken()), {
success: function() {
app.alert.show("pdf_download_api_success", {
level: "success",
messages: SUGAR.language.get('Quotes', 'LBL_QUOTE_PDF_GENERATED'),
autoClose: true
});
},});
Run Code Online (Sandbox Code Playgroud)
我检查了以下网址中的detials:但我无法在HTTPS请求中添加headder可以帮助一些吗?
https://developer.sugarcrm.com/2016/11/15/security-changes-coming-in-sugar-7-8/
经过这么多的研究,我想出了一个解决这个问题的方法.
注意:没有支持文档api.fileDownload(
可供使用OAuth-token
.
所以我尝试使用XMLHttpRequest
,它工作正常.
解
var request = new XMLHttpRequest();
request.open('GET', api.buildURL("YOURMODULE/" + model.get("id") + "/pdf/download"), true);
request.setRequestHeader('OAuth-Token', api.getOAuthToken()); // UR TOKEN
request.responseType = "blob";
request.onload = function (e) {
if (this.status === 200) {
// `blob` response
// create `objectURL` of `this.response` : `.pdf` as `Blob`
var file = window.URL.createObjectURL(this.response);
var a = document.createElement("a");
a.href = file;
/*request.onreadystatechange = function() {
if(this.readyState == this.HEADERS_RECEIVED) {
console.log(request.getResponseHeader("Content-Type"));
}
}*/
a.download = request.getResponseHeader("FileName");
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
};
};
request.send();
Run Code Online (Sandbox Code Playgroud)
检查此线程可能在将来可能有更新:https://community.sugarcrm.com/message/90474-re-sugarcrm-filedownload-error-after-upgrade?commentID=90474#comment-90474
归档时间: |
|
查看次数: |
371 次 |
最近记录: |