只有Javascript的web服务调用
Javascript only web service call
在Dynamics CRM中,我有一个javascript文件,需要调用外部web服务(跨域)。这是一个纯JS文件;没有HTML。
JQUERY不能在这里使用(动态限制),所以我需要通过java脚本单独调用跨域web服务。
有没有人有一个例子调用跨域web服务与javascript单独?
JSONP似乎不起作用,因为我不能在文件内使用HTML元素。
你可以在c#代码中这样做:创建一个Action,要么注册一个插件,要么让代码成为code Activity,然后从JS中调用Action。有关从WebAPI调用操作的详细信息,请参阅https://msdn.microsoft.com/en-us/library/mt607600.aspx。
在c#代码中,您可以自由地使用即WebClient
与外部世界通信(参见这里的示例:https://msdn.microsoft.com/en-us/library/gg509030.aspx)
我建议您使用fetch。Fetch是浏览器请求HTTP资源的一种原生方式。但是,它不支持旧的浏览器,所以如果你想支持这些浏览器,你可以使用polyfill。
如果你想调用跨域,你应该调用fetch这个选项集:
fetch('http://domain.example/', { mode: 'cors' });
您可以尝试使用Sys.Net.WebRequest。MS Dynamics CRM 2016使用该库来执行其Web API请求。在他们的Microsoft.Ajax.js资源中有引用。因此,您不需要在您的.js
Web资源中引用它。
您可以在Sys.Net.WebRequest页面上找到使用示例。下面是如何使用此库调用Dynamics CRM Action的示例:
var kaId = Xrm.Page.data.entity.getId().replace("{", "").replace("}", "");
var wr = new Sys.Net.WebRequest();
wr.set_url(myCustomGetWebApiUrl() + "knowledgearticles(" + kaId + ")/Microsoft.Dynamics.CRM.new_MyCustomBoundAction");
wr.set_httpVerb("POST");
wr.set_body(null);
var headers = wr.get_headers();
headers["Content-Length"] = 0;
headers["Content-Type"] = "application/json";
headers["Accept"] = "application/json";
headers["OData-Version"] = "4.0";
wr.add_completed(function (executor) {
var actionResponse = JSON.parse(executor.get_responseData());
if (actionResponse)
console.log(actionResponse);
else
alert("An error occurred: " + executor.get_statusText());
});
wr.invoke();
- 如何使应用程序加载独立于web服务调用
- 使用javascript中的相同代码为REST服务调用php函数
- 当视图在AngularJS中返回时,我如何获得异步服务调用来更新视图
- 仅在某些客户端上无效的 Web 服务调用
- 画布在 Angular 服务调用中冻结一秒
- Angular 2:当第一个服务成功时,两个后端服务调用
- jQuery验证,在继续之前等待服务调用响应
- 是否仍然存在获取Rest服务调用以返回纯字符串的方法
- AngularJs 2: 如何调试服务调用?(ES6 语法)
- 多个链式 jQuery AJAX POST Web 服务调用
- 来自 chrome 扩展程序的多个网络服务调用
- 如何从 AngularJS 中的服务调用工厂
- Fluxxor / React.JS中的服务调用
- AngularJS函数在多次异步服务调用后
- AJAX 调用:无效的 Web 服务调用,缺少参数值
- 如何在Orchard CMS中处理来自JS的跨域Web服务调用
- 使用 AngularJS 在服务调用后呈现所有表单值
- 如何使用 ajax 请求在 Javascript 中触发 Web 服务调用
- JavaScript 中的 Web 服务调用和 JSON 数组操作
- Angular$q返回promise两次$http服务调用