[编辑]我的帖子描述不好,对不起我的英语,我重新开始。 我的意思是当我向localhost发出请求ajax rest to api opentok时,我有这个错误:
无法加载https://api.opentok.com/v2/project/ /广播:对预检请求的响应未通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点“https://localhost:8081”访问。
此代码代表ajax查询:
var dataLiveStreamRequestBody = {
"sessionId": sessionId,
"layout": {
"type": "bestfit",
},
"maxDuration": 5400,
"outputs": {
"hls": {},
"rtmp": [{
"id": "<adresse_ip>",
"serverUrl": "rtmp://<adresse_ip>/<streamname>/toto",
"streamName": "<stream-name>"
}]
},
"resolution": "640x480"
};
$.ajax({
contentType: 'application/json',
data: JSON.stringify(dataLiveStreamRequestBody),
dataType: 'json',
beforeSend: function(xhr){
xhr.setRequestHeader('X-OPENTOK-AUTH', '<token>');
xhr.setRequestHeader('Accept', 'application/json');
},
success: function(data){
console.log("live streaming broadcast succeeded");
},
error: function(){
console.log("live streaming broadcast failed");
},
type: 'POST',
url: 'https://api.opentok.com/v2/project/'+ apiKey +'/broadcast'
});
我按照此页面上的说明操作:https://tokbox.com/developer/rest/#start_broadcast
答案 0 :(得分:0)
Tokbox QA的工作人员在这里。
不确定你要做什么,但也许这会有所帮助:
https://tokbox.com/developer/rest/#start_broadcast
另一方面,IP 127.0.0.1:8081看起来不太好,因为它是一个内部地址。知识产权来自哪里?
答案 1 :(得分:0)
TokBox Developer Evangelist在这里。
您应该从服务器进行startBroadcast
来电,因为该呼叫需要使用X-OPENTOK-AUTH
和apiKey
生成的apiSecret
标头。 apiSecret
不应在客户端公开,因为它用于生成OpenTok sessions和tokens。
此外,这是一个StackOverflow答案,解释当您遇到Access-Control-Allow-Origin
问题时该怎么做:Response to preflight request doesn't pass access control check