作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在按照 Sam Dutton 教程开发自己的 webRTC 应用程序,我正在使用 xirSys 为我的点对点视频提供 TURN 服务器。但是 $.ajax()
方法不会像我预期的那样返回凭据、用户名、url。我还尝试使用dataType: JSONP
。从firebug调试时返回的响应为:
{"p":"/getIceServers","s":400,"d":null,"e":"Could not validate application"}
无论如何,我是否可以将我的 url、用户名、凭据获取为 JSON 并直接使用它们在我的应用程序中没有收到任何错误,因为即使 url 命中的状态为 200,有时调用 $.ajax()
时仍然会出现语法错误?
$.ajax({
type: "POST",
url: "https://api.xirsys.com/getIceServers",
data: {
ident: "< xyz >",
secret: "< something-like-my-token >",
domain: "< www.mydomain.com >",
application: "default",
room: "default",
secure: 1
},
success: function (data, status) {
// data.d is where the iceServers object lives
peerConnectionConfig = data.d;
console.log(peerConnectionConfig);
}
});
最佳答案
经过一番挣扎,我终于发现使用jQuery的$.ajax()并没有$.post()那么酷,或者干脆我没明白。无论如何,这是我的解决方法。
function()
是一个成功回调,其中 STUN 和 TURN 服务器被放入一个数组并按 RTCPeerConnection(server)
方法的需要使用。
$.post("https://api.xirsys.com/getIceServers", {
ident: "your_username",
secret: "XXX-XXXX-XXXX-XX",
domain: "www.mydomainname.com",
application: "default",
room: "default",
secure: 1
},
function (data, status) {
console.log("Data: " + data + "nnStatus: " + status); //just for checking
myResponse = data;
turnServer = JSON.parse(myResponse); //parsing to JSON because RTCPeerConnection() requires an object
console.log(turnServer.d); //d is the property that contains our STUN and TURN servers
for (var i in turnServer.d.iceServers) { //logic for STUN and TURN
if(i == 0 ) {
STUN = turnServer.d.iceServers[i];
pc_config.iceServers.push(STUN);
}
if( i > 0 ) {
var turnUrl = turnServer.d.iceServers[i].url;
var turnSlice = turnUrl.slice(5,25);
TURN = {"url": "turn:" + turnServer.d.iceServers[i].username + '@' + turnSlice,
"credential" : turnServer.d.iceServers[i].credential }
pc_config.iceServers.push(TURN);
}
调用 RTCPeerConnection(pc_config) 来获取 STUN 和 TURN 服务器,用于生产,否则它在 localhost
上运行良好,参数设置为 null
。
关于jquery - XirSys $.ajax() 方法返回状态 400,错误 : Could not validate application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30272355/
我是一名优秀的程序员,十分优秀!