跨源请求被阻止 使用 javascript 向 API 发送帖子时出错
Cross-Origin Request Blocked error on sending post to an api using javascript
嗨,我有一个这样的 https://rdkportal.ccp.xcal.tv/build_images/cdl 向它发送帖子请求,我将能够以 JSON 格式获取一些信息作为响应。这是使用 linux 发送它的格式
curl -u username:password https://rdkportal.ccp.xcal.tv/build_images/cdl -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"image_name": "MX011AN_VBN_master_20160118234003sdy_NG", "recipients_list": "some_user@.com", "cdl": "PROD", "type": "tftp", "stb": { "ip4_address": "0.0.0.0", "ip6_address": "2001:558:4030:2:96d4:feff:fe7c:7500", "mac_address": "", "serial_number": "" }}'
我成功地发送了 POST 请求并通过在 linux 机器中执行上述 curl 命令来接收响应。
我正在尝试使用 ajax 在 javascript 中做类似的事情,但我收到以下错误。
跨源请求被阻止:同源策略不允许在 https://rdkportal.ccp.xcal.tv/build_images/cdl 读取远程资源。(原因:缺少 CORS 标头"访问控制-允许源")。
这是我的代码
$.ajax({
type: 'POST',
url: 'https://rdkportal.ccp.xcal.tv/build_images/cdl',
crossDomain: true,
data: '{"some":"json"}',
dataType: 'json',
xhrFields: {
withCredentials: true
},
success: function(responseData, textStatus, jqXHR) {
var value = responseData.someKey;
alert('POST success');
},
error: function (responseData, textStatus, errorThrown) {
alert('POST failed.');
}
});
我也不知道如何在 ajax 中发送带有请求的凭据。请帮忙,我在这里被击中了。提前谢谢。
您可以通过 3 种方式实现这些目标:
1)如果服务器端代码不在您的控制范围内,您可以安装chrome插件,这意味着你们没有处理它。
链接:
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?utm_source=chrome-ntp-icon
2). 您可以创建代理服务器并使用这些新的 URL/API 进行通信。
3). 第三个也是最后一个也是最好的是允许访问控制允许来源:* 到 *(用于授予对来自任何域的所有 URL 的访问权限),或访问控制允许来源:"如果您的系统IP,如果在本地运行,则主机名"(用于仅授予对该特定主机的访问权限)
您需要添加标头以允许来自其他地方的请求进入终端节点。
"访问控制允许来源:*"
这会将标头与可以向此终结点发出请求的授权域一起发送(* 表示全部)。
CORS 希望知道您是否有权在该服务器上发出请求,因此在标头上发送请求可以解决此问题。
如何在标头上添加它取决于您使用的语言(节点php ruby java)。
如果您详细说明后端,我可以为您提供帮助。
您需要将以下标头添加到请求中:
Access-Control-Allow-Origin: *
或
Access-Control-Allow-Origin: root-url-here.com
但最重要的是,服务器需要在响应中以相同的 URL(例如 root-url-here.com)发送回此标头。
如果您不是服务器端的开发人员,则应要求他们将您的请求 URL 添加到已接受的请求源列表中。
- 地理定位api和谷歌地图出错
- 使用Angular获取数据API调用时出错
- 来自facebook图形API的响应中出错
- 使用 RESTful API,如果未定义特定的响应 json 级别,我如何在客户端不出错
- 将Dropbox API脚本加载到chrome扩展时出错
- 跨源请求被阻止 使用 javascript 向 API 发送帖子时出错
- PHP 和 googleMap API 中的 javascript 出错
- “尝试在清除的范围内运行编译和运行脚本” - 使用 Google Graph API 在 Drupal 中出错
- 使用 Froogaloop api 快退 30 秒时出错
- Mocha测试套件在尝试连接到API时出错
- 调用Instagram用户API时出错.刚刚在GET方法中死亡
- Google Maps API,InfoWindow domready事件处理程序出错
- 谷歌地图嵌入api错误错误:[$interpole:nooncat]插值时出错
- Reddit Api尝试通过snoocore node.js获取Reddit自文本时出错
- 从Twitter api 1.1获取推文时出错
- 使用Google Maps API和分析云代码时定义地理编码器变量时出错
- 使用React.js和Twilio API时出错
- 使用node js的twitter API出错
- 从脚本使用Soap API出错
- &;谷歌没有定义&;在Chrome浏览器中调用谷歌地图api出错