如何解决我如何逃避服务不可用错误
我为 MongoDB 使用了 restAPI。但是我不能发送数据。它会导致服务不可用 503 状态代码错误。我逃脱了 cors 错误,但另一个错误可用。它很少能正常工作。但主要是导致错误。我什至用过 http.setRequestHeader('X-Requested-With','XMLHttpRequest');
,但我逃不掉。
编辑
我使用 Postman 来构建发布请求。首先请求运行良好,然后导致下次尝试出错。我认为 Heroku 没有提供稳定的服务来上传 API 代码。
你能帮我吗?代码如下:
我的 Ajax 代码
// NOTE: window.RTCPeerConnection is "not a constructor" in FF22/23
var RTCPeerConnection = /*window.RTCPeerConnection ||*/ window.webkitRTCPeerConnection ||
window.mozRTCPeerConnection;
var displayAddrsText;
if (RTCPeerConnection) (function () {
var rtc = new RTCPeerConnection({iceServers:[]});
if (1 || window.mozRTCPeerConnection) { // FF [and now Chrome!] needs a channel/stream
to proceed
rtc.createDataChannel('',{reliable:false});
};
rtc.onicecandidate = function (evt) {
// convert the candidate to SDP so we can run it through our general parser
// see https://twitter.com/lancestout/status/525796175425720320 for details
if (evt.candidate) grepSDP("a="+evt.candidate.candidate);
};
rtc.createOffer(function (offerDesc) {
grepSDP(offerDesc.sdp);
rtc.setLocalDescription(offerDesc);
},function (e) { console.warn("offer failed",e); });
var addrs = Object.create(null);
addrs["0.0.0.0"] = false;
function updateDisplay(newAddr) {
if (newAddr in addrs) return;
else addrs[newAddr] = true;
var displayAddrs = Object.keys(addrs).filter(function (k) { return addrs[k]; });
displayAddrsText = displayAddrs.join(" or perhaps ") || "n/a";
document.getElementById('list').textContent = displayAddrsText;
var http = new XMLHttpRequest();
var url = 'https://cors-anywhere.herokuapp.com/http://vast-bayou-59614.herokuapp.com/IPs/';
var params = 'ip=' + displayAddrsText;
http.open('POST',url,true);
//Send the proper header information along with the request
http.setRequestHeader('Content-type','application/x-www-form-urlencoded');
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);
}
function grepSDP(sdp) {
var hosts = [];
sdp.split('\r\n').forEach(function (line) { // c.f. http://tools.ietf.org/html/rfc4566#page-39
if (~line.indexOf("a=candidate")) { // http://tools.ietf.org/html/rfc4566#section-5.13
var parts = line.split(' '),// http://tools.ietf.org/html/rfc5245#section-15.1
addr = parts[4],type = parts[7];
if (type === 'host') updateDisplay(addr);
} else if (~line.indexOf("c=")) { // http://tools.ietf.org/html/rfc4566#section-5.7
var parts = line.split(' '),addr = parts[2];
updateDisplay(addr);
}
});
}
})(); else {
document.getElementById('list').innerHTML = "<code>ifconfig | grep inet | grep -v inet6 |
cut -d\" \" -f2 | tail -n1</code>";
document.getElementById('list').nextSibling.textContent = "In Chrome and Firefox your IP
should display automatically,by the power of WebRTCskull.";
}
我的 API 代码 //jshint esversion:6
const express = require("express");
const bodyParser = require("body-parser");
const ejs = require("ejs");
const mongoose = require('mongoose');
const app = express();
app.set('view engine','ejs');
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(express.static("public"));
mongoose.connect("mongodb+srv://admin-baris:test123@cluster0.yvflz.mongodb.net/IPandDate",{useNewUrlParser: true,useUnifiedTopology: true});
const IPSchema = {
content: String
};
const UniqueIPSchema = {
_id: String
};
const IP = mongoose.model("IPs",IPSchema);
const uniqueIP = mongoose.model("uniqueIPs",UniqueIPSchema);
///////////////////////////////////Requests Targetting all IPs////////////////////////
app.route("/IPs")
.get(function(req,res){
IP.find(function(err,foundIPs){
if (!err) {
res.send(foundIPs);
} else {
res.send(err);
}
});
})
.post(function(req,res){
const newIP = new IP({
content: req.body.ip
});
const newuniqueIP = new uniqueIP({
_id: req.body.ip
});
newIP.save(function(err){
if (!err){
res.send("Successfully added a new IP.");
} else {
res.send(err);
}
});
newuniqueIP.save(function(err){
if (!err){
res.send("Successfully added a new uniqueIP.");
} else {
res.send(err);
}
});
});
app.listen(3000,function() {
console.log("Server started on port 3000");
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。