有关于同一概念的各种问题,但不知怎的,我无法用Angular 2找出一个简单的HTTP Get调用。
我已经尝试过与邮递员相同的服务,但是它有效,但没有角度服务。
我的代码如下:
Service.js
<script language="js"><![CDATA[
var log = mc.getServiceLog();
var requestBody = mc.getProperty("requestBody");
log.info("Avant de checker l'adresse "+requestBody.city);
mc.setProperty("addressNonNull",1);
if (requestBody.street || requestBody.zip || requestBody.city || requestBody.country) {
if(requestBody.street) {
mc.setProperty("query.param.street",requestBody.street);
}
if(requestBody.city) {
mc.setProperty("query.param.city",requestBody.city);
}
mc.setProperty("addressNonNull",1);
}
log.info("crm_create_subtasks_v2 address_value ==>"+requestBody.street+"|" +requestBody.zip+"|"+requestBody.city);
]]>
</script>
<switch source="get-property('addressNonNull')" xmlns:ns="http://org.apache.synapse/xsd">
<case regex="1.0">
<header name="Content-Type" scope="transport" value="application/json"/>
<property name="Content-Encoding" action="remove" scope="transport"/>
<property name="Authorization" expression="fn:concat('Basic ', base64Encode('user:password'))" scope="transport" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
<call>
<endpoint key="jira_address_exist_v2"/>
</call>
<property expression="json-eval($.)" name="check address exist"
scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
<log>
<property name="create_subtasks_v2 response jira_address_exist_v2" expression="json-eval($.)"/>
</log>
即使我正在设置标题,我也会收到401 Unauthorized错误。
任何帮助?
答案 0 :(得分:2)
当我使用Angular进行第一次REST调用时,我遇到了完全相同的行为 - 它与Postman合作但与Angular没有合作。
一些浏览者做了一个所谓的&#34;预检&#34;在&#34;真实&#34;之前打电话AJAX调用,这第一次调用导致401 Unauthorized响应。问题是我没有认证就不允许OPTIONS标题。 OPTIONS标题的处理也在限制区域,但验证信息丢失,因此服务器向我发送了401 Unauthorized。
最后,解决方案是在限制区域之外处理OPTIONS请求。因此,客户端现在收到OPTIONS标头请求的OK,并继续使用&#34; real&#34;调用
由于我已经调整了服务器端的请求处理,一切都按预期工作。