ODATA上的XHR令牌请求为空

2020-09-07 16:51发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好同事,

我正在浏览一个博客并实现特定的UI5,并在请求xhr时获得了空值

我也在显示代码段。

服务名称空间" training_pkg.xs.xsodata" {
   "培训"。" training_pkg.HDBTABLE :: MY_FILE_UPLOAD_TABLE"
   作为"上传";
//始终汇总(" TOTAL_SALES"个最大值)
 } 
这是我的控制器

 var oModel = new sap.ui.model.odata.ODataModel("/img/training_pkg/xs/xsodata/service.xsodata/",true);//(XHR成功在这里)
 sap.ui.define([
 " sap/ui/core/mvc/Controller",
 " sap/m/MessageBox"
 ],函数(Controller,MessageBox){
 "使用严格";
 return Controller.extend(" Loc.Productivity.controller.App",{

     onInit:function(){
 this._oBusyDialog = new sap.m.BusyDialog();
 },
 onUpload:function(e){
 var t = this;
 var fU = this.getView()。byId(" idfileUploader");
 var domRef = fU.getFocusDomRef();
 var file = domRef.files [0];
 var dublicateValue = [];
 尝试{
 如果(文件){
 var that = this;
 that._oBusyDialog.open();
/****************要获取CSRF令牌********************/
 var sUrl ="/img/training_pkg/xs/xsodata/service.xsodata/";//在这里失败
 $ .ajax({
 网址:sUrl,
 类型:" GET",
 beforeSend:函数(xhr)
 {
 xhr.setRequestHeader(" X-CSRF-Token"," Fetch");
 },
 成功:函数(数据,textStatus,XMLHttpRequest){
 var oToken = XMLHttpRequest.getResponseHeader('X-CSRF-Token'); //空值
 var oHeaders = {
 " x-csrf-token":oToken//空
 };
/****************要获取CSRF令牌********************/
/*******************要上传文件************************/
 var oURL ="/training_pkg/xs/xsodata/service.xsodata/Upload";
 $ .ajax({
 输入:" POST",
 网址:oURL,
 标头:oHeader,
 快取:false,
 contentType:[" csv"],
 processData:否,
 数据:文件,
 成功:功能(数据){
 var isIE = false ||  !! document.documentMode;
 if(isIE == true){
 var ev_result = data.childNodes [0] .lastChild.childNodes [1] .textContent;
 var ev_error = data.childNodes [0] .lastChild.childNodes [0] .textContent;
 }
 其他{
 var ev_result = data.getElementsByTagName(" entry")[0] .children [6] .children [1] .innerHTML;
 var ev_error = data.getElementsByTagName(" entry")[0] .children [6] .children [0] .innerHTML;
 }
/*******成功*********/
 var valSuccessArray = ev_result.split("//");
 var itemsArray = [];
 for(var i = 0; i 

    
        
         

(22.6 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好同事,

我正在浏览一个博客并实现特定的UI5,并在请求xhr时获得了空值

我也在显示代码段。

服务名称空间" training_pkg.xs.xsodata" {
   "培训"。" training_pkg.HDBTABLE :: MY_FILE_UPLOAD_TABLE"
   作为"上传";
//始终汇总(" TOTAL_SALES"个最大值)
 } 
这是我的控制器

 var oModel = new sap.ui.model.odata.ODataModel("/img/training_pkg/xs/xsodata/service.xsodata/",true);//(XHR成功在这里)
 sap.ui.define([
 " sap/ui/core/mvc/Controller",
 " sap/m/MessageBox"
 ],函数(Controller,MessageBox){
 "使用严格";
 return Controller.extend(" Loc.Productivity.controller.App",{

     onInit:function(){
 this._oBusyDialog = new sap.m.BusyDialog();
 },
 onUpload:function(e){
 var t = this;
 var fU = this.getView()。byId(" idfileUploader");
 var domRef = fU.getFocusDomRef();
 var file = domRef.files [0];
 var dublicateValue = [];
 尝试{
 如果(文件){
 var that = this;
 that._oBusyDialog.open();
/****************要获取CSRF令牌********************/
 var sUrl ="/img/training_pkg/xs/xsodata/service.xsodata/";//在这里失败
 $ .ajax({
 网址:sUrl,
 类型:" GET",
 beforeSend:函数(xhr)
 {
 xhr.setRequestHeader(" X-CSRF-Token"," Fetch");
 },
 成功:函数(数据,textStatus,XMLHttpRequest){
 var oToken = XMLHttpRequest.getResponseHeader('X-CSRF-Token'); //空值
 var oHeaders = {
 " x-csrf-token":oToken//空
 };
/****************要获取CSRF令牌********************/
/*******************要上传文件************************/
 var oURL ="/training_pkg/xs/xsodata/service.xsodata/Upload";
 $ .ajax({
 输入:" POST",
 网址:oURL,
 标头:oHeader,
 快取:false,
 contentType:[" csv"],
 processData:否,
 数据:文件,
 成功:功能(数据){
 var isIE = false ||  !! document.documentMode;
 if(isIE == true){
 var ev_result = data.childNodes [0] .lastChild.childNodes [1] .textContent;
 var ev_error = data.childNodes [0] .lastChild.childNodes [0] .textContent;
 }
 其他{
 var ev_result = data.getElementsByTagName(" entry")[0] .children [6] .children [1] .innerHTML;
 var ev_error = data.getElementsByTagName(" entry")[0] .children [6] .children [0] .innerHTML;
 }
/*******成功*********/
 var valSuccessArray = ev_result.split("//");
 var itemsArray = [];
 for(var i = 0; i 

    
        
         

(22.6 kB)
付费偷看设置
发送
1条回答
吹牛啤
1楼 · 2020-09-07 16:55.采纳回答

Ashli​​n,您好,请在get请求中使用下面的标题。

获取请求:
 标头:{
 " X-Requested-With":" XMLHttpRequest",
 " Content-Type":" application/atom + xml",
 " DataServiceVersion":" 2.0",
 " X-CSRF-Token":"获取"
 }

 在获取请求成功调用中:
 var header_token = response.headers ['x-csrf-token'];

 通过使用" header_token"调用帖子方法

 问候,
 Karthik Arjun 

一周热门 更多>