使用 SOAP 和 Javascript(Google Adwords Sandbox API)发送 GET 请求
Posted
技术标签:
【中文标题】使用 SOAP 和 Javascript(Google Adwords Sandbox API)发送 GET 请求【英文标题】:Sending a GET request using SOAP and Javascript (Google Adwords Sandbox API) 【发布时间】:2011-09-15 07:24:44 【问题描述】:我正在尝试访问 Google Adwords Sandbox API,但我终其一生都无法弄清楚发生了什么。
这是我的代码:
var wsUrl = "https://adwords-sandbox.google.com/api/adwords/cm/v201008/CampaignService";
var soapRequest =
'<soapenv:Envelope \
xmlns:soapenv="http://schemax.xmlsoap.org/soap/envelope/" \
xmlns="https://adwords.google.com/api/adwords/cm/v200906"> \
<soapenv:Header> \
<service>adwords</service> \
<email>***@gmail.com</email> \
<password>***</password> \
<developerToken>***@gmail.com++USD</developerToken> \
<useragent>MyApplication</useragent> \
</soapenv:Header> \
<soapenv:Body> \
<getClientAccounts/> \
</soapenv:Body> \
</soapenv:Envelope>';
$.ajax(
type: "GET",
url: wsUrl,
contentType: document.body,
crossDomain: true,
dataType: "jsonp",
data: soapRequest,
success: processSuccess,
error: processError
);
);
function processSuccess(data, status, req)
if (status == "success")
console.log("success");
function processError(data, status, req)
console.log("status = " + status + " data= " + data );
我不断收到 500 个内部服务器错误。我究竟做错了什么?!在 Google Adwords Sandbox 网站上,他们列出了简单的说明:
要创建沙盒帐户,请向沙盒版本发送获取请求 CampaignService,使用 WSDL 位置和沙箱标头作为 如下面所描述的。对沙盒的初始调用会创建一个 MCC 用于电子邮件的沙盒帐户以及五个客户帐户 您指定的地址。您的沙盒帐户及其客户帐户 一开始是空的。 http://code.google.com/apis/adwords/docs/sandbox.html
救命!
【问题讨论】:
把header的内容Accept as application/soap+xml?? 你的意思是把<meta content-type="application/soap+xml">
加到head body中吗?不幸的是,它没有任何区别
【参考方案1】:
AdWords API 是一种 SOAP API,因此无法以 JSONP 格式发送数据。此外,带有 cross-domain=true 的 $.ajax 仅适用于 JSON 或 JSONP 变体,除此之外的任何内容都将被浏览器的跨域策略阻止。
您可以尝试探索 AdWords API javascript 客户端库 - 详情请参阅 http://code.google.com/p/google-api-adwords-js/。
我们的主要讨论论坛位于 http://groups.google.com/group/adwords-api?pli=1,我经常在那里回答开发人员的问题,因此如果您有任何后续问题,请随时在此处提问,我们很乐意回答您的问题。
干杯, Anash P. Oommen
【讨论】:
以上是关于使用 SOAP 和 Javascript(Google Adwords Sandbox API)发送 GET 请求的主要内容,如果未能解决你的问题,请参考以下文章
html 此代码块使用工作流Web服务为javascript启动工作流,jquery运行soap操作
通过 Ajax Javascript 调用 SAP SOAP Web 服务——绕过跨域策略
javascript AJAX通过SOAP访问的WebService
html 通过JavaScript测试SharePoint soap服务