解析EntityName XMLHttpRequest请求时发生错误

时间:2018-05-07 04:34:36

标签: javascript get xmlhttprequest

我正在尝试使用java脚本中的XMLHttpRequest对MS流做http GET请求但是遇到上述错误。 我知道这是因为url.Can任何人都可以帮助我,我的网址是什么问题。

var finalurl = "https://prod4-30.centralindia.logic.azure.com:443/workflows/ed30ad9219a940fa8e5af317cf697e4c/triggers/manual/paths/invoke?api-version=2016-06-01&sp=/triggers/manual/run&sv=1.0&sig=ctQe3OAscgTfzDgji9gS_B43lvHEV4JP-hGdaxu46wg";

function DohttpRequest(greeting) {
  alert(greeting);
  var xmlHttp = new XMLHttpRequest();
  xmlHttp.open('GET', '" + finalurl + "', false);
  xmlHttp.send(null);
  var jsonResponse = JSON.parse(xmlHttp.responseText);
  console.log(jsonResponse);
  alert(xmlHttp.responseText);
}

我正在使用自定义操作在sharePoint中执行GET请求。使用CommandAction定义自定义操作如下

                UserCustomAction SPToDBAction = collUserCustomAction.Add();
                SPToDBAction.Location = "CommandUI.Ribbon.ListView";
                SPToDBAction.Sequence = 10001;
                SPToDBAction.Title = "SPToDBAction";
                string location = "<CommandUIDefinition Location=\"Ribbon.ListItem.Actions.Controls._children\">";
                SPToDBAction.CommandUIExtension = @"<CommandUIExtension><CommandUIDefinitions>"
                      + location
                       + "<Button Id=\"InvokeAction.Button\" TemplateAlias=\"o1\" Command=\"EditFormButtonCommand\" CommandType=\"General\" LabelText=\"Sync SP To DB\" Image32by32=\"data:image/png;base64,iVB= \" />"
                       + "</CommandUIDefinition>"
                       + "</CommandUIDefinitions>"
                       + "<CommandUIHandlers>"
                        //+ "<CommandUIHandler Command =\"EditFormButtonCommand\" CommandAction = \"javascript:alert('Custom List ECB custom Action')\" />"
                        + "<CommandUIHandler Command =\"EditFormButtonCommand\" CommandAction = \"javascript:DohttpRequest('Are you sure  to sync the Items from Sharepoint to Database'); function DohttpRequest(greeting){ alert(greeting); var xmlHttp = new XMLHttpRequest(); xmlHttp.open( 'GET', '" + finalurl + "', true );   xmlHttp.send( null ); var jsonResponse = JSON.parse( xmlHttp.responseText); console.log(jsonResponse);  alert( xmlHttp.responseText);}\" />"
                        + "</CommandUIHandlers></CommandUIExtension>";
                SPToDBAction.Update();

1 个答案:

答案 0 :(得分:0)

不建议使用同步XMLHttpRequest(async = false),因为在服务器响应准备好之前,JavaScript将停止执行。如果服务器忙或慢,应用程序将挂起或停止。

对于异步请求,您需要等待服务器应答,为此您需要使用XMLHttpRequest onreadystatechange属性,因此最终您的功能代码将如下所示...

function DohttpRequest(greeting) {
   alert(greeting);
   let xmlHttp = new XMLHttpRequest();

   xmlHttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
         let jsonResponse = JSON.parse(this.responseText);
         console.log(jsonResponse);
         alert(this.responseText);
      }
   };

   xmlHttp.open('GET', '" + finalurl + "', true);
   xmlHttp.send();
}

希望它有所帮助...