【发布时间】:2014-02-23 15:12:44
【问题描述】:
我正在使用 blackbaud API,它说我需要将发布数据发送到一个 url 以接收我想要的 XML 数据。
参考:https://www.blackbaud.com/files/support/helpfiles/FAFAPI/default.htm
我不太清楚如何做到这一点,所以我使用了 jQuery 的 POST 方法并得到了跨域错误:
请求的资源上没有“Access-Control-Allow-Origin”标头
这是我用来发送请求的代码:
$(document).ready(function() {
$.post("https://www.kintera.org/api/Authentication/Login.ashx?accountid=xxxxx",
{username: "xxxxxx", password:"xxxxxxx"},function(result) {
console.log(result);
});
})
这里有人能引导我走向正确的方向吗?当我对页面进行简单的 php 发布时,会显示 xml 结果,我只是不知道如何获取该信息以供自己使用。建议?
我遇到的最大问题是跨域错误
编辑: 弄清楚了。对于任何有同样问题的人来说,我使用 curl 的解决方案是
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.kintera.org/api/Authentication/Login.ashx?accountid=xxxxxxx");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('username' => $username,'password' => $password)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
$xml = new SimpleXMLElement($result);
curl_close($ch);
【问题讨论】:
-
尝试在网址中添加
callback=? -
不幸的是,我仍然收到跨域错误:/
-
发布到您的服务器,允许您的服务器进行登录,返回任何必要的内容。
-
您认为您可以详细说明一下这是如何完成的吗?我如何使用服务器执行此操作?不过还是谢谢
标签: javascript php jquery xmlhttprequest cross-domain