run*_*ynx 5 javascript soap reactjs fetch-api
我在使用 fetch API 发布到 SOAP Web 服务时遇到了非常困难的情况。我使用 Chrome 插件解决了 CORS 问题,但现在我发送的内容似乎存在格式问题。我已经尝试实施在其他问题中看到的修复,特别是在 Content-Type 等问题中,但我无法得到任何不同的结果。它只是不喜欢插槽 1 中的 <。
\n\n根据其他问题,我发送的实际“数据”看起来确实与其他 SOAP 请求有点不同...他们提到了一个信封,他们定义了一个 XML 版本等。我的是我发送的纯 XML 数据本地的 SOAP 服务测试人员。所以我想我不知道的是该软件在将请求发送到服务之前是否会向请求“有效负载”添加其他详细信息。
\n\nWSDL 不是很有帮助,但我可能找错了地方。
\n\n任何建议都将受到高度赞赏。
\n\n我的 JavaScript/获取:
\n\nvar base64 = require(\'base-64\');\n\nlet url = \'http://SCRB4APUSLSA801:9080/apex/services/argobasicservice\';\nlet username = \'abo055\';\nlet password = \'hidden\';\nlet headers = new Headers();\n\nexport const N4RecordScan = {\n\n submit(data) {\n\n headers.append(\'Content-Type\', \'text/xml\');\n headers.append(\'SOAPAction\', \'basicInvoke\');\n headers.append(\'Authorization\', \'Basic \' + base64.encode(username + ":" + password));\n\n let dataPrefix = \'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:arg="http://www.navis.com/services/argobasicservice"><soapenv:Header/><soapenv:Body><arg:basicInvoke><arg:scopeCoordinateIds>APMT/USLAX/LAX/LAX</arg:scopeCoordinateIds><arg:xmlDoc><![CDATA[\';\n let dataSuffix = \']]></arg:xmlDoc></arg:basicInvoke></soapenv:Body></soapenv:Envelope>\';\n\n data = dataPrefix + data + dataSuffix;\n\n console.log(\'about to send \' + data);\n\n fetch(url, {\n body: data,\n method: \'POST\',\n mode: \'cors\',\n headers: headers,\n credentials: \'include\'\n })\n .then(response => console.log(response))\n .catch(function(error) {\n console.log(error);\n });\n //.done();\n\n }\n};\nRun Code Online (Sandbox Code Playgroud)\n\n这就是我要发送的数据:
\n\n<gate><record-scan><gate-id>USLAX</gate-id><stage-id>asd</stage-id><lane-id>asd</lane-id><external-console-id>asd</external-console-id><truck tag-id="asd" license-nbr="asd"/><equipment><container eqid="asd" on-chassis-id="asd" /><chassis eqid="asd"></chassis></equipment></record-scan></gate>\nRun Code Online (Sandbox Code Playgroud)\n\n这是我得到的回应:
\n\n<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<soapenv:Body>\n<soapenv:Fault>\n<faultcode>soapenv:Server.userException</faultcode>\n<faultstring>org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.</faultstring>\n<detail>\xe2\x80\xa6</detail>\n</soapenv:Fault>\n</soapenv:Body>\n</soapenv:Envelope>\nRun Code Online (Sandbox Code Playgroud)\n\n这是我正在访问的服务的 WSDL。
\n\n<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.navis.com/services/argobasicservice" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="ArgobasicService" targetNamespace="http://www.navis.com/services/argobasicservice">\n<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Argo Services</wsdl:documentation>\n<wsdl:types>\n<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.navis.com/services/argobasicservice">\n<xsd:element name="basicInvoke">\n<xsd:complexType>\n<xsd:sequence>\n<xsd:element name="scopeCoordinateIds" type="xsd:string"/>\n<xsd:element maxOccurs="1" minOccurs="1" name="xmlDoc" type="xsd:string"/>\n</xsd:sequence>\n</xsd:complexType>\n</xsd:element>\n<xsd:element name="basicInvokeResponse">\n<xsd:complexType>\n<xsd:sequence>\n<xsd:element name="basicInvokeResponse" type="xsd:string"/>\n</xsd:sequence>\n</xsd:complexType>\n</xsd:element>\n<xsd:element name="invokeRequest">\n<xsd:complexType>\n<xsd:sequence>\n<xsd:element name="scopeCoordinateIds" type="xsd:string"/>\n<xsd:element maxOccurs="1" minOccurs="1" name="request" type="xsd:string"/>\n<xsd:element maxOccurs="1" minOccurs="1" name="handler" type="xsd:string"/>\n<xsd:element maxOccurs="1" minOccurs="1" name="locale" type="xsd:string"/>\n</xsd:sequence>\n</xsd:complexType>\n</xsd:element>\n<xsd:element name="invokeResponse">\n<xsd:complexType>\n<xsd:sequence>\n<xsd:element name="basicInvokeResponse" type="xsd:string"/>\n</xsd:sequence>\n</xsd:complexType>\n</xsd:element>\n</xsd:schema>\n</wsdl:types>\n<wsdl:message name="basicInvokeRequest">\n<wsdl:part element="tns:basicInvoke" name="basicInvoke"/>\n</wsdl:message>\n<wsdl:message name="basicInvokeResponse">\n<wsdl:part element="tns:basicInvokeResponse" name="basicInvokeResponse"/>\n</wsdl:message>\n<wsdl:message name="invokeRequest">\n<wsdl:part element="tns:invokeRequest" name="invokeRequest"/>\n</wsdl:message>\n<wsdl:message name="invokeResponse">\n<wsdl:part element="tns:invokeResponse" name="invokeResponse"/>\n</wsdl:message>\n<wsdl:portType name="ArgobasicServicePort">\n<!-- name of your wrapped method -->\n<wsdl:operation name="basicInvoke">\n<wsdl:input message="tns:basicInvokeRequest"/>\n<wsdl:output message="tns:basicInvokeResponse"/>\n</wsdl:operation>\n<wsdl:operation name="invoke">\n<wsdl:input message="tns:invokeRequest"/>\n<wsdl:output message="tns:invokeResponse"/>\n</wsdl:operation>\n</wsdl:portType>\n<wsdl:binding name="ArgobasicServiceSoapBinding" type="tns:ArgobasicServicePort">\n<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>\n<!-- name of your wrapped method -->\n<wsdl:operation name="basicInvoke">\n<soap:operation soapAction=""/>\n<wsdl:input>\n<soap:body use="literal"/>\n</wsdl:input>\n<wsdl:output>\n<soap:body use="literal"/>\n</wsdl:output>\n</wsdl:operation>\n<wsdl:operation name="invoke">\n<soap:operation soapAction=""/>\n<wsdl:input>\n<soap:body use="literal"/>\n</wsdl:input>\n<wsdl:output>\n<soap:body use="literal"/>\n</wsdl:output>\n</wsdl:operation>\n</wsdl:binding>\n<wsdl:service name="ArgobasicService">\n<wsdl:port binding="tns:ArgobasicServiceSoapBinding" name="ArgobasicServicePort">\n<soap:address location="http://scrb4apuslsa701:10080/apex/services/argobasicservice"/>\n</wsdl:port>\n</wsdl:service>\n</wsdl:definitions>\n( function(){ window.SIG_EXT = {}; } )()\nRun Code Online (Sandbox Code Playgroud)\n
您为每个请求重复使用相同的Headers对象。这意味着您每次发出新请求时都会添加新的授权标头。
将 移入let headers = new Headers();函数体(并使用const),可能会使其工作!
| 归档时间: |
|
| 查看次数: |
13234 次 |
| 最近记录: |