Ошибка при вызове внешнего сервиса

<div class=»sp-wrap»><div class=»sp-head-wrap»><div class=»sp-head folded clickable»>agent</div></div><div class=»sp-body»><div class=»sp-content»><!—shcode—><pre><code class=’java’>import com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.*;
import com.ups.www.XMLSchema.XOLTWS.Common.v1_0.*;
import com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.CodeDescriptionType;
import com.ups.www.WSDL.XOLTWS.Rate.v1_1.RateServiceLocator;
import com.ups.www.XMLSchema.XOLTWS.UPSS.v1_0.*;

import lotus.domino.*;

public class JavaAgent extends AgentBase {

Session session;
Database db;
String wssearchkey;
ShipmentType shipment;
_RateRequest raterequest;
_RateResponse rateresponse;
RequestType requestType;

public void NotesMain() {

try {
Document setdoc;
session = getSession();
db = session.getCurrentDatabase();
wssearchkey =»UPSWebServiceSetting».toLowerCase();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Document demand = db.getDocumentByID(agentContext.getCurrentAgent().getParameterDocID());

if (demand == null) {
System.out.println(«Не найден документ»);
return;
};
// System.out.println(«Нашли документ для обработки»);
setdoc = this.getsettingdoc();
if (setdoc == null) return;
//******************************************************
// System.out.println(«записываем параметры безопасности»);
_UPSSecurity upssec = new _UPSSecurity();
upssec = this.getupssecurityparams(setdoc);
if (upssec == null) return;
//******************************************************
//System.out.println(«генерируем запрос»);
raterequest = this.generaterequest(demand, setdoc);
if (raterequest == null) {
System.out.println(«raterequest == null»);
return;
};
//System.out.println(raterequest.getRequest().getRequestOption(0).toString());

// System.out.println(«запуск самого сервиса»);
// запуск самого сервиса

System.out.println(«getShipTo CountryCode: «+raterequest.getShipment().getShipTo().getAddress().getCountryCode());
System.out.println(«getShipTo getPostalCode: «+raterequest.getShipment().getShipTo().getAddress().getPostalCode());
System.out.println(«getShipTo getAddressLine: «+raterequest.getShipment().getShipTo().getAddress().getAddressLine(0));

System.out.println(«Shipper CountryCode: «+raterequest.getShipment().getShipper().getAddress().getCountryCode());
System.out.println(«Shipper getPostalCode: «+raterequest.getShipment().getShipper().getAddress().getPostalCode());
System.out.println(«Shipper getAddressLine: «+raterequest.getShipment().getShipper().getAddress().getAddressLine(0));

System.out.println(«getLength»+raterequest.getShipment().get_package(0).getDimensions().getLength());

RateServiceLocator rr = new RateServiceLocator();
//com.ups.www.WSDL.XOLTWS.Rate.v1_1.RatePortType stub = rr.getRatePort();
// URL portaddr = new URL («https://wwwcie.ups.com/webservices/Rate»);
rr.getRatePort().setCredentials(setdoc.getItemValueString(«USERNAME»), setdoc.getItemValueString(«USERPASSWORD»));

if (upssec == null) {
System.out.println(«upssec is nothing»);
return;
};

// данные о параметрах безопасности
System.out.println(«getAccessLicenseNumber «+upssec.getServiceAccessToken().getAccessLicenseNumber());
System.out.println(«getUsernameToken UserName «+upssec.getUsernameToken().getUsername());
System.out.println(«getUsernameToken Password «+upssec.getUsernameToken().getPassword());
if (raterequest == null) {
System.out.println(«raterequest== null»);
return;
};

rateresponse = rr.getRatePort().processRate(raterequest, upssec);

System.out.println(«Статус»+ rateresponse.getResponse().getResponseStatus().toString());
} catch (Exception e) {
System.out.println(«Error in AgentBase: «);
e.printStackTrace();
}
}

;

//====================================================
private Document getsettingdoc() {
try {
// System.out.println(«получение setview»);
View setview = db.getView(«(WSSETView)»);
if (setview == null) {
System.out.println(«setview is null»);
return null;
};
// System.out.println(«wssearchkey = «+wssearchkey);
Document setdoc = setview.getDocumentByKey(wssearchkey, true);

if (setdoc == null) return null;

return setdoc;

} catch (NotesException err) {
System.out.println(«Error in function ‘getsettingdoc’: «+err.toString());
return null;
}
}

//====================================================
private _UPSSecurity getupssecurityparams(Document setdoc) {
try {
_UPSSecurity usec = new _UPSSecurity();

_UPSSecurity_UsernameToken upsusnametoken = new _UPSSecurity_UsernameToken();
_UPSSecurity_ServiceAccessToken upsservaccesstoken = new _UPSSecurity_ServiceAccessToken();
// прописываем логин и пароль
upsusnametoken.setUsername(setdoc.getItemValueString(«USERNAME»));
upsusnametoken.setPassword(setdoc.getItemValueString(«USERPASSWORD»));

// ключ договора
upsservaccesstoken.setAccessLicenseNumber(setdoc.getItemValueString(«AccessLicenseNumber»));

usec.setServiceAccessToken(upsservaccesstoken);
usec.setUsernameToken(upsusnametoken);

return usec;

} catch (NotesException err) {
System.out.println(«Error in function ‘getupssecurityparams’: «+err.toString());
return null;
}

}

//====================================================
private _RateRequest generaterequest(Document demanddoc, Document setdoc) {
try {
System.out.println(«generaterequest start»);
_RateRequest grequest = new _RateRequest();
System.out.println(«grequest»);
requestType = new RequestType();
// System.out.println(«RequestType setdoc»+setdoc.getItemValueString(«REQUESTOPTION»));

String str[] = {«Rate»,»»};
requestType.setRequestOption(str);
// System.out.println(grequest.getRequest().getRequestOption(0).toString());
// формирование параметров для отправки
shipment = this.generateshipmentparameters(demanddoc, setdoc);
if (shipment == null) return null;
grequest.setShipment(shipment);
// System.out.println(«grequest getShipperNumber»+grequest.getShipment().getShipper().getShipperNumber().toLowerCase());
// System.out.println(grequest.getShipment().getService().getCode());
return grequest;
}catch(Exception e){
System.out.println(«Error in ‘generaterequest’: «+e.toString());
return null;
}

};
//====================================================

private ShipmentType generateshipmentparameters(Document demanddoc, Document setdoc) {
try {
// System.out.println («generateshipmentparameters start»);

ShipmentType shipment1 = new ShipmentType();
; // парметры отгрузки
ShipperType shipper = new ShipperType();
ShipToType shipTo = new ShipToType();
ShipFromType shipFrom = new ShipFromType();
CodeDescriptionType service = new CodeDescriptionType();
PackageType _package = new PackageType();

AddressType adr = new AddressType();
ShipToAddressType shiptoaddress = new ShipToAddressType();
// данные об отправителе
// System.out.println («данные об отправителе»);
String fromloc = demanddoc.getItemValueString(«FromLocation»);
shipper.setName(fromloc);
// System.out.println («Проставили наименование отправителя»);
shipper.setShipperNumber(demanddoc.getItemValueString(«ShipperNumber»));
// System.out.println («Проставили ShipperNumber»);
String cc[]={
demanddoc.getItemValueString(«From_Address»),»»};
adr.setAddressLine(cc);
adr.setCity(demanddoc.getItemValueString(«FromTown»)); // город откуда отправляем
// System.out.println («город откуда»);
adr.setCountryCode(setdoc.getItemValueString(«CountryCode»)); // код страны откуда отправляем
// System.out.println («код страны откуда отправляем»);
adr.setPostalCode(demanddoc.getItemValueString(«FromZip»));
// System.out.println («индекс города откуда отправляем»);
shipper.setAddress(adr);
// System.out.println («Проставили Адресные данные»);
//——————————————-//
// данные о получателе
// System.out.println («данные о получателе»);
String tolocation = demanddoc.getItemValueString(«ToLocation»);
shipTo.setName(tolocation);
String cc1[] = {demanddoc.getItemValueString(«To_Address»),»»};
shiptoaddress.setAddressLine(cc1);
shiptoaddress.setCity(demanddoc.getItemValueString(«ToTown»)); // город куда отправляем
shiptoaddress.setCountryCode(setdoc.getItemValueString(«CountryCode»)); // код страны откуда отправляем
shiptoaddress.setPostalCode(demanddoc.getItemValueString(«To_Index»));

shipTo.setAddress(shiptoaddress);
//——————————————-//
// данные об отправителе
System.out.println(«данные от кого»);
shipFrom.setName(fromloc);
adr.setAddressLine(cc);
adr.setCity(demanddoc.getItemValueString(«FromTown»)); // город откуда отправляем
adr.setCountryCode(setdoc.getItemValueString(«CountryCode»)); // код страны откуда отправляем
adr.setPostalCode(demanddoc.getItemValueString(«From_Index»));
shipFrom.setAddress(adr);

//—————————————————————
// код типа сервиса
// System.out.println («код типа сервиса»);
service.setCode(setdoc.getItemValueString(«ServiceCode»));

//данные об отправляемом объекте
// System.out.println («данные об отправляемом объекте»);
CodeDescriptionType packagingType = new CodeDescriptionType();
// System.out.println(«Corresp_Type = «+demanddoc.getItemValueString(«Corresp_Type»));
// if (demanddoc.getItemValueString(«Corresp_Type») == «01») {
// packagingType.setCode(«01»); // письмо
if ( demanddoc.getItemValueString(«Corresp_Type») == «02»){
// packagingType.setCode(«02»); // коробка
com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.DimensionsType dimensions = new com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.DimensionsType();
dimensions.setHeight(demanddoc.getItemValueString(«Height»));
dimensions.setLength(demanddoc.getItemValueString(«Length»));
dimensions.setWidth(demanddoc.getItemValueString(«Width»));
CodeDescriptionType cdtype = new CodeDescriptionType();

cdtype.setCode(setdoc.getItemValueString(«unitOfMeasurementCode»));
dimensions.setUnitOfMeasurement(cdtype);

// вес коробки
PackageWeightType PackageWeight = new PackageWeightType();
cdtype.setCode(setdoc.getItemValueString(«unitOfWeightCode»));
PackageWeight.setUnitOfMeasurement(cdtype); // размерность веса
PackageWeight.setWeight(demanddoc.getItemValueString(«Weight»));

_package.setPackageWeight(PackageWeight);
_package.setDimensions(dimensions);
}else{
DimensionsType dimensions = new DimensionsType();
dimensions.setHeight(«0»);
dimensions.setLength(«0»);
dimensions.setWidth(«0»);
CodeDescriptionType cdtype = new CodeDescriptionType();

cdtype.setCode(setdoc.getItemValueString(«unitOfMeasurementCode»));
dimensions.setUnitOfMeasurement(cdtype);

// вес коробки
PackageWeightType PackageWeight = new PackageWeightType();
cdtype.setCode(setdoc.getItemValueString(«unitOfWeightCode»));
PackageWeight.setUnitOfMeasurement(cdtype); // размерность веса
PackageWeight.setWeight(«0»);

_package.setPackageWeight(PackageWeight);
_package.setDimensions(dimensions);

};
packagingType.setCode(demanddoc.getItemValueString(«Corresp_Type»));
_package.setPackagingType(packagingType);
PackageType ptype[] = {_package};

// System.out.println («запись параметров»);
if (shipment1 == null) {
System.out.println(«shipment is null»);
return null;
};

shipment1.setService(service);
System.out.println(«service»);
shipment1.setShipper(shipper);
System.out.println(«shipper»);
shipment1.setShipFrom(shipFrom);
System.out.println(«shipFrom»);
shipment1.setShipTo(shipTo);
System.out.println(«shipTo»);
shipment1.set_package(ptype);

System.out.println(«set_package»);
// System.out.println («generateshipmentparameters end»);

return shipment1;

}catch(Exception err){
System.out.println(«Error in function ‘generateshipmentparameters’: «+err.toString());
return null;
}

}
}[/CODE]
<div class=»sp-wrap»><div class=»sp-head-wrap»><div class=»sp-head folded clickable»>Добавлено:</div></div><div class=»sp-body»><div class=»sp-content»><!—shcode—><pre><code class=’java’>import com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.*;
import com.ups.www.XMLSchema.XOLTWS.Common.v1_0.*;
import com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.CodeDescriptionType;
import com.ups.www.WSDL.XOLTWS.Rate.v1_1.RateServiceLocator;
import com.ups.www.XMLSchema.XOLTWS.UPSS.v1_0.*;

import lotus.domino.*;

public class JavaAgent extends AgentBase {

Session session;
Database db;
String wssearchkey;
ShipmentType shipment;
_RateRequest raterequest;
_RateResponse rateresponse;
RequestType requestType;

public void NotesMain() {

try {
Document setdoc;
session = getSession();
db = session.getCurrentDatabase();
wssearchkey =»UPSWebServiceSetting».toLowerCase();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Document demand = db.getDocumentByID(agentContext.getCurrentAgent().getParameterDocID());

if (demand == null) {
System.out.println(«Не найден документ»);
return;
};
// System.out.println(«Нашли документ для обработки»);
setdoc = this.getsettingdoc();
if (setdoc == null) return;
//******************************************************
// System.out.println(«записываем параметры безопасности»);
_UPSSecurity upssec = new _UPSSecurity();
upssec = this.getupssecurityparams(setdoc);
if (upssec == null) return;
//******************************************************
//System.out.println(«генерируем запрос»);
raterequest = this.generaterequest(demand, setdoc);
if (raterequest == null) {
System.out.println(«raterequest == null»);
return;
};
//System.out.println(raterequest.getRequest().getRequestOption(0).toString());

// System.out.println(«запуск самого сервиса»);
// запуск самого сервиса

System.out.println(«getShipTo CountryCode: «+raterequest.getShipment().getShipTo().getAddress().getCountryCode());
System.out.println(«getShipTo getPostalCode: «+raterequest.getShipment().getShipTo().getAddress().getPostalCode());
System.out.println(«getShipTo getAddressLine: «+raterequest.getShipment().getShipTo().getAddress().getAddressLine(0));

System.out.println(«Shipper CountryCode: «+raterequest.getShipment().getShipper().getAddress().getCountryCode());
System.out.println(«Shipper getPostalCode: «+raterequest.getShipment().getShipper().getAddress().getPostalCode());
System.out.println(«Shipper getAddressLine: «+raterequest.getShipment().getShipper().getAddress().getAddressLine(0));

System.out.println(«getLength»+raterequest.getShipment().get_package(0).getDimensions().getLength());

RateServiceLocator rr = new RateServiceLocator();
//com.ups.www.WSDL.XOLTWS.Rate.v1_1.RatePortType stub = rr.getRatePort();
// URL portaddr = new URL («https://wwwcie.ups.com/webservices/Rate»);
rr.getRatePort().setCredentials(setdoc.getItemValueString(«USERNAME»), setdoc.getItemValueString(«USERPASSWORD»));

if (upssec == null) {
System.out.println(«upssec is nothing»);
return;
};

// данные о параметрах безопасности
System.out.println(«getAccessLicenseNumber «+upssec.getServiceAccessToken().getAccessLicenseNumber());
System.out.println(«getUsernameToken UserName «+upssec.getUsernameToken().getUsername());
System.out.println(«getUsernameToken Password «+upssec.getUsernameToken().getPassword());
if (raterequest == null) {
System.out.println(«raterequest== null»);
return;
};

rateresponse = rr.getRatePort().processRate(raterequest, upssec);

System.out.println(«Статус»+ rateresponse.getResponse().getResponseStatus().toString());
} catch (Exception e) {
System.out.println(«Error in AgentBase: «);
e.printStackTrace();
}
}

;

//====================================================
private Document getsettingdoc() {
try {
// System.out.println(«получение setview»);
View setview = db.getView(«(WSSETView)»);
if (setview == null) {
System.out.println(«setview is null»);
return null;
};
// System.out.println(«wssearchkey = «+wssearchkey);
Document setdoc = setview.getDocumentByKey(wssearchkey, true);

if (setdoc == null) return null;

return setdoc;

} catch (NotesException err) {
System.out.println(«Error in function ‘getsettingdoc’: «+err.toString());
return null;
}
}

//====================================================
private _UPSSecurity getupssecurityparams(Document setdoc) {
try {
_UPSSecurity usec = new _UPSSecurity();

_UPSSecurity_UsernameToken upsusnametoken = new _UPSSecurity_UsernameToken();
_UPSSecurity_ServiceAccessToken upsservaccesstoken = new _UPSSecurity_ServiceAccessToken();
// прописываем логин и пароль
upsusnametoken.setUsername(setdoc.getItemValueString(«USERNAME»));
upsusnametoken.setPassword(setdoc.getItemValueString(«USERPASSWORD»));

// ключ договора
upsservaccesstoken.setAccessLicenseNumber(setdoc.getItemValueString(«AccessLicenseNumber»));

usec.setServiceAccessToken(upsservaccesstoken);
usec.setUsernameToken(upsusnametoken);

return usec;

} catch (NotesException err) {
System.out.println(«Error in function ‘getupssecurityparams’: «+err.toString());
return null;
}

}

//====================================================
private _RateRequest generaterequest(Document demanddoc, Document setdoc) {
try {
System.out.println(«generaterequest start»);
_RateRequest grequest = new _RateRequest();
System.out.println(«grequest»);
requestType = new RequestType();
// System.out.println(«RequestType setdoc»+setdoc.getItemValueString(«REQUESTOPTION»));

String str[] = {«Rate»,»»};
requestType.setRequestOption(str);
// System.out.println(grequest.getRequest().getRequestOption(0).toString());
// формирование параметров для отправки
shipment = this.generateshipmentparameters(demanddoc, setdoc);
if (shipment == null) return null;
grequest.setShipment(shipment);
// System.out.println(«grequest getShipperNumber»+grequest.getShipment().getShipper().getShipperNumber().toLowerCase());
// System.out.println(grequest.getShipment().getService().getCode());
return grequest;
}catch(Exception e){
System.out.println(«Error in ‘generaterequest’: «+e.toString());
return null;
}

};
//====================================================

private ShipmentType generateshipmentparameters(Document demanddoc, Document setdoc) {
try {
// System.out.println («generateshipmentparameters start»);

ShipmentType shipment1 = new ShipmentType();
; // парметры отгрузки
ShipperType shipper = new ShipperType();
ShipToType shipTo = new ShipToType();
ShipFromType shipFrom = new ShipFromType();
CodeDescriptionType service = new CodeDescriptionType();
PackageType _package = new PackageType();

AddressType adr = new AddressType();
ShipToAddressType shiptoaddress = new ShipToAddressType();
// данные об отправителе
// System.out.println («данные об отправителе»);
String fromloc = demanddoc.getItemValueString(«FromLocation»);
shipper.setName(fromloc);
// System.out.println («Проставили наименование отправителя»);
shipper.setShipperNumber(demanddoc.getItemValueString(«ShipperNumber»));
// System.out.println («Проставили ShipperNumber»);
String cc[]={
demanddoc.getItemValueString(«From_Address»),»»};
adr.setAddressLine(cc);
adr.setCity(demanddoc.getItemValueString(«FromTown»)); // город откуда отправляем
// System.out.println («город откуда»);
adr.setCountryCode(setdoc.getItemValueString(«CountryCode»)); // код страны откуда отправляем
// System.out.println («код страны откуда отправляем»);
adr.setPostalCode(demanddoc.getItemValueString(«FromZip»));
// System.out.println («индекс города откуда отправляем»);
shipper.setAddress(adr);
// System.out.println («Проставили Адресные данные»);
//——————————————-//
// данные о получателе
// System.out.println («данные о получателе»);
String tolocation = demanddoc.getItemValueString(«ToLocation»);
shipTo.setName(tolocation);
String cc1[] = {demanddoc.getItemValueString(«To_Address»),»»};
shiptoaddress.setAddressLine(cc1);
shiptoaddress.setCity(demanddoc.getItemValueString(«ToTown»)); // город куда отправляем
shiptoaddress.setCountryCode(setdoc.getItemValueString(«CountryCode»)); // код страны откуда отправляем
shiptoaddress.setPostalCode(demanddoc.getItemValueString(«To_Index»));

shipTo.setAddress(shiptoaddress);
//——————————————-//
// данные об отправителе
System.out.println(«данные от кого»);
shipFrom.setName(fromloc);
adr.setAddressLine(cc);
adr.setCity(demanddoc.getItemValueString(«FromTown»)); // город откуда отправляем
adr.setCountryCode(setdoc.getItemValueString(«CountryCode»)); // код страны откуда отправляем
adr.setPostalCode(demanddoc.getItemValueString(«From_Index»));
shipFrom.setAddress(adr);

//—————————————————————
// код типа сервиса
// System.out.println («код типа сервиса»);
service.setCode(setdoc.getItemValueString(«ServiceCode»));

//данные об отправляемом объекте
// System.out.println («данные об отправляемом объекте»);
CodeDescriptionType packagingType = new CodeDescriptionType();
// System.out.println(«Corresp_Type = «+demanddoc.getItemValueString(«Corresp_Type»));
// if (demanddoc.getItemValueString(«Corresp_Type») == «01») {
// packagingType.setCode(«01»); // письмо
if ( demanddoc.getItemValueString(«Corresp_Type») == «02»){
// packagingType.setCode(«02»); // коробка
com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.DimensionsType dimensions = new com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.DimensionsType();
dimensions.setHeight(demanddoc.getItemValueString(«Height»));
dimensions.setLength(demanddoc.getItemValueString(«Length»));
dimensions.setWidth(demanddoc.getItemValueString(«Width»));
CodeDescriptionType cdtype = new CodeDescriptionType();

cdtype.setCode(setdoc.getItemValueString(«unitOfMeasurementCode»));
dimensions.setUnitOfMeasurement(cdtype);

// вес коробки
PackageWeightType PackageWeight = new PackageWeightType();
cdtype.setCode(setdoc.getItemValueString(«unitOfWeightCode»));
PackageWeight.setUnitOfMeasurement(cdtype); // размерность веса
PackageWeight.setWeight(demanddoc.getItemValueString(«Weight»));

_package.setPackageWeight(PackageWeight);
_package.setDimensions(dimensions);
}else{
DimensionsType dimensions = new DimensionsType();
dimensions.setHeight(«0»);
dimensions.setLength(«0»);
dimensions.setWidth(«0»);
CodeDescriptionType cdtype = new CodeDescriptionType();

cdtype.setCode(setdoc.getItemValueString(«unitOfMeasurementCode»));
dimensions.setUnitOfMeasurement(cdtype);

// вес коробки
PackageWeightType PackageWeight = new PackageWeightType();
cdtype.setCode(setdoc.getItemValueString(«unitOfWeightCode»));
PackageWeight.setUnitOfMeasurement(cdtype); // размерность веса
PackageWeight.setWeight(«0»);

_package.setPackageWeight(PackageWeight);
_package.setDimensions(dimensions);

};
packagingType.setCode(demanddoc.getItemValueString(«Corresp_Type»));
_package.setPackagingType(packagingType);
PackageType ptype[] = {_package};

// System.out.println («запись параметров»);
if (shipment1 == null) {
System.out.println(«shipment is null»);
return null;
};

shipment1.setService(service);
System.out.println(«service»);
shipment1.setShipper(shipper);
System.out.println(«shipper»);
shipment1.setShipFrom(shipFrom);
System.out.println(«shipFrom»);
shipment1.setShipTo(shipTo);
System.out.println(«shipTo»);
shipment1.set_package(ptype);

System.out.println(«set_package»);
// System.out.println («generateshipmentparameters end»);

return shipment1;

}catch(Exception err){
System.out.println(«Error in function ‘generateshipmentparameters’: «+err.toString());
return null;
}

}
}[/CODE]

#javascript #alfresco #alfresco-share

#javascript #alfresco #alfresco-поделиться

Вопрос:

Alfresco community edition-5.1.x. при вызове внешнего веб-сервиса я получаю ошибку, не могу получить результат

Код:

 function updateList(){
    Alfresco.util.Ajax.request({

                url: "http://test.com/webservice/mgmobile/mgserver.php?wsfunction=course_get_all_coursesamp;wstoken=7f5e0f05f7c54ece7a23f02fe3718464",
        method: Alfresco.util.Ajax.GET,

                headers: ('Access-Control-Allow-Origin: *'),
                headers: ('Access-Control-Request-Headers: *'),
                headers: ('Access-Control-Allow-Methods: *'),
        requestContentType: Alfresco.util.Ajax.JSON,
        successCallback:{
            fn: function(res){  
                appendOptiOnvalues(res)
            },
        },
        failureCallback:{
            fn: function(res){  
                alert("Error");
            },
        }
    });

}
  

Ошибка:

Заблокирован запрос с перекрестным источником: политика того же источника запрещает чтение удаленного ресурса в http://test.com/webservice/mgmobile/mgserver.php?wsfunction=course_get_all_coursesamp;wstoken=7f5e0f05f7c54ece7a23f02fe3718464. (Причина: отсутствует токен ‘content-type’ в заголовке CORS ‘Access-Control-Allow-Headers’ из предполетного канала CORS).

Пожалуйста, помогите в этом.

Комментарии:

1. slideshare.net/jottley/cors-enable-alfresco-for-cors . Не могли бы вы, пожалуйста, быстро взглянуть на это?

Ответ №1:

Похоже, что вызов выполняется на сервер, не относящийся к Alfresco, поэтому настройка CORS на Alfresco не поможет. Вместо этого проверьте конфигурацию CORS на вызываемом сервере и убедитесь, что он устанавливает «Access-Control-Allow-Headers», чтобы разрешить указание заголовка «content-type». Вероятно, это устанавливается используемой вами библиотекой утилит Alfresco AJAX.

Я не знаю, какой сервер вы вызываете, поэтому я не могу предоставить справку CORS, специфичную для этого сервера, но вот некоторая информация о включении CORS для различных типов серверов.

Ответ №2:

Мы столкнулись с этим сегодня при попытке вызвать веб-скрипт Alfresco из пользовательского интерфейса Alfresco Share и обнаружили, что проблема была в конфигурации платформы Alfresco CORS. По Alfresco.util.Ajax.request умолчанию в запрос включены следующие заголовки:

  • localtoken
  • x-запрошенный-с

Они должны были быть включены в наше cors.allowed.headers свойство, alfresco-global.properties иначе ACS отклонит запрос с HTTP 403.

Пример

 cors.enabled=true
cors.allowed.origins=http://localhost:8180
cors.allowed.methods=GET,HEAD,POST,PUT,DELETE,OPTIONS
cors.allowed.headers=origin, authorization, x-file-size, x-file-name, content-type, accept, x-file-type, range, localtoken, x-requested-with
cors.support.credentials=true
cors.exposed.headers=Accept-Ranges, Content-Encoding, Content-Length, Content-Range, content-type, localtoken
  

Примечания
Имейте в виду alfresco-global.properties , где вы настраиваете это при использовании контейнера ACS all-in-one-platform-docker, предоставляемого Alfresco. При развертывании собственного WAR на Tomcat или другом сервере приложений вам необходимо следовать инструкциям, специфичным для этой системы.

Внимание!

Не удалось загрузить выписку из ЕГРЮЛ. Запрос на обновление информации сформирован, его обработка может занять некоторое время. Пожалуйста, попробуйте пройти регистрацию еще раз позже.

В режиме разработчика F12 , в IE11 Win10 64 bit :

Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to

http://momentjs.com/guides/#/warnings/js-date/

for more info.
Arguments:
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: 02.04.1996, _f: undefined, _strict: undefined, _locale: [object Object]
undefined

Перевод :
Осуждение предупреждение: значение не признал RFC2822 или формат ISO. конструкция moment возвращается к js Date(), которая не является надежной во всех браузерах и версиях. Форматы даты, отличные от RFC2822/ISO, не приветствуются и будут удалены в следующем крупном выпуске. Пожалуйста, обратитесь к

http://momentjs.com/guides/#/warnings/js-date/

для получения дополнительной информации.
Аргументы:
[0] _isAMomentObject: правда, _isUTC: ложь, _useUTC: ложь, _l, за: неопределено, _и: 02.04.1996, АF: неопределено, _strict: неопределено, _locale: [Object объект]
неопределенный

В выписке дата указана такая же и также, криворукие , проверьте процедуру обращения к базе данных на предмет формата даты :)

Искренне ваш , наивный обычный пользователь.

Есть проблемы с ранжированием, проект не растет, хотите проверить работу своих специалистов по продвижению? Закажите профессиональный аудит в Семантике

Получи нашу книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».


Подпишись на рассылку и получи книгу в подарок!

Внутренняя ошибка сервера — это класс состояния протокола HTTP, который означает, что операция/запрос пользователя выполнены неудачно и виноват в этом сам сервер.

Больше видео на нашем канале — изучайте интернет-маркетинг с SEMANTICA

У вас кончилась еда. Нужно идти в магазин за продуктами. На дверях табличка — “Учет”. Вы без продуктов.

Пользователь хочет зайти на сайт. На сервер направляется запрос. И если на сервере какие-то проблемы, то человек увидит сообщение об ошибке в окне браузера.

Какие есть ошибки сервера

Как мы выяснили, внутренние ошибки сервера составляют класс состояний HTTP.

  • 500. Обозначает широкий спектр серверных ошибок, если они не относятся к нижеперечисленным проблемам рассматриваемого класса.
  • 501. Означает, что сервер не обладает необходимыми возможностями для совершения обработки пользовательского запроса. Как правило, ошибка 501 появляется в тех случаях, когда сервер не может распознать метод запроса. Если сервер распознал метод запроса, но он не может быть использован на данном интернет ресурсе отображается ошибка 405 (произошла по вине пользователя).
  • 502 (Bad Gateway). Возникает в тех случаях, когда сервер выполняет функцию прокси-сервера или шлюза. Ошибка говорит о том, что вышестоящий сервер отправляет недействительный ответ.
  • 503. Отображается при невозможности обработки пользовательских запросов сайтом. Это может быть обусловлено перегрузкой, неполадками в обслуживании, техническими неполадками и так далее. Чаще всего при отображении ошибки 503 в поле Retry-After указывается время, когда пользователю необходимо повторить запрос.
  • 504. Здесь опять сервер выполняет функцию шлюза или прокси сервера. Он перенаправляет запрос вышестоящему серверу, но не дожидается ответа, следовательно, не может завершить обработку запроса.
  • 505. Означает, что версия запроса не поддерживается сервером.
  • 506. Это значит, что текущий вариант сервера имеет ошибочную конфигурацию. В связи с этим процесс связывания не доходит до завершения и все время обрывается.
  • 507. Чтобы закончить запрос и обработать его, на сервере нет места. Проблемы подобного рода могут быть временными и легко устранимыми.
  • 509. Если интернет ресурс потратил весь трафик, который был отведен ему, возникает данная ошибка. Для решения проблемы необходимо обратиться к провайдеру хостинга .
  • 510. Данную ошибку можно встретить в тех случаях, когда клиент делает запрос и хочет использовать определенное расширение, однако сервер не использует и не может предоставить данное расширение.
  • 511. Данная ошибка идет не от самого сервера, к которому обращается пользователь, а от посредника, в роли которого может выступать провайдер. Как правило, проблема возникает, когда клиенту необходимо авторизоваться в глобальной сети (указать пароль от платной точки доступа). При этом в форме ответа отображается специальное поле для выполнения авторизации.
  • 520. Говорит о том, что есть ошибка, однако сервер сети доставки содержимого не может правильно обработать ее и отобразить клиенту.
  • 521. Возникает в ситуациях, кода сервер отклоняет подключение сети доставки содержимого.
  • 522. Отображается, если система передачи данных не может подключиться к серверу, истекает время ожидания серверного ответа.
  • 523. Сервер нельзя «достичь», при обращении к серверу возникают серьезные препятствия, преодоление которого на данный момент не является возможным.
  • 524. Истекло время подключения необходимого сервера и сервера сети доставки содержимого.
  • 525. Если в процессе рукопожатия самого сервера и сервера сети доставки содержимого возникают ошибки, отображается код 525.
  • 526. Означает, что на данный момент нет возможности подтвердить сертификат шифрования.

Что делать, если пишут “Ошибка сервера”

Перечисленные ошибки, как правило, возникают из-за файла .htaccess, тем оформления и плагинов. Рассмотрим варианты решения проблемы.

Итак, вам понравилась новая тема оформления и вы ее установили. Все бы хорошо, но после возникает внутренняя проблема сервера. Для восстановления работоспособности сервера выбираем один из способов действия:

Через FTP

Заходим в него и ищем папку с темами оформления. Открываем папку и исправляем/удаляем тему оформления, которая сейчас размещена на сайте. Заходим на сайт и видим пустую страницу без ошибок.

Открываем администраторскую панель WordPress, затем тему оформления, получаем уведомление об активации другой темы. Небольшой совет: не удаляйте стандартные темы, они выполняют роль эталона и их можно активировать после того, как сайт восстановлен.

Через PhpMyAdmin

Если вами была удалена/отредактирована стандартная тема, ее нужно скачать и установить заново. Это можно сделать со следующих ресурсов: TwentyTen, TwentyEleven, TwentyTwelve. После скачивания открываем PhpMyAdmin, затем базу данных.

Перейдите во вкладку SQL и скопируйте в нее код, представленный ниже.

Обратите внимание, что название темы должно быть указано правильно. Затем сайт заработает в обычном режиме.

Если дело в плагинах, сервер работает некорректно и сайт отображается иначе. При этом доступ к консоли сохранен, что позволяет отключить тот или иной плагин. Иногда установленный плагин может вступать в конфликт с другими, плагинами, которые уже установлены и активированы на ресурсе. Тогда происходит сбой и выдается внутренняя ошибка. Отключить плагин можно в 3 шага:

  1. Открываем FTP ресурса.
  2. Открываем папку с имеющимися плагинами.
  3. Удаляем/изменяем имя/редактируем плагин.

Если ошибки заключаются в неполадках файла .htaccess, необходимо сделать следующее:

1. Открываем FTP-клиент FileZilla, меню «Сервер» и ставим флажок напротив пункта «Отображать скрытые файлы принудительно». Обновляем перечень файлов и находим наш файл .htaccess.

2. Открываем файл через блокнот/текстовый редактор. Перед вами отображается текст- перечь указаний и правил для функционирования веб сервера. Просмотрите файл и ликвидируйте ошибки. Альтернативный вариант — удалить файл полностью, а затем написать с помощью WordPress новый файл (откройте администраторскую панель, далее «Параметры», затем «Постоянные ссылки». Выберите нужный вариант, нажмите «Сохранить»).

Если перечисленные мероприятия не дали должного результата, необходимо обратиться к квалифицированному программисту.

Как вы видите, перечень ошибок достаточно широк. При выявлении, устранять их необходимо как можно раньше.

Читайте о самых распространённых онлайн ошибках. Какие причины их возникновения и как исправить.

the-most-common-online-errors-and-how-to-fix-them.png

Введение

В пользование сетью «Интернет» вовлечено подавляющее большинство всех обладателей компьютерной техники, независимо от вида используемых образцов устройств. И несмотря на многие преимущества задействования «Интернета» как для обработки и хранения данных, так и для их распространения и обмена, в некоторых случаях существует вероятность столкнуться с отказом в доступе к тем или иным ресурсам сети по причине возникновения разнообразных видов ошибок. И несмотря на утверждение, что полностью избежать ошибок в целом при взаимодействии с данными в сети «Интернет» практически невозможно, пользователи могут ознакомиться со списком основных и часто встречающихся видов ошибок, понять их значение и изучить некоторые основные шаги для их устранения. И далее в нашей статье мы подробнее остановимся на освещении данных вопросов.

Распространенные типы сетевых ошибок при доступе к ресурсам сети «Интернет»

Большинство известных видов ошибок в сети «Интернет» сопровождаются кодом состояния «HTTP». Обычно пользователи могут наблюдать сообщение об ошибке, содержащее помимо объясняющего текста еще числовое значение формата «4XX» или «5XX» (за числами четыре или пять следуют две дополнительные цифры, например, код ошибки имеет вид «404»).

И вариант формата «4XX», и «5XX» являются ошибками, но они имеют существенную разницу. Формат «4XX» – это ошибки, возникающие вследствие деятельности клиента, а «5XX» – результат ошибки сервера. Если при обращении к сетевому ресурсу всплывает сообщение с ошибкой в виде «4XX», то, скорее всего, пользователи могут ее самостоятельно исправить.

Ошибки вида «5XX» – это ошибки сервера, которые означают, что пользователи не оказывали влияния на результат, приведший к возникновению ошибки, и источником сбоя является неработающий сервер, к которому пользователи пытаются получить доступ. Независимо от вида ошибки, связанна ли она с деятельностью пользователей или работоспособностью удаленного сетевого сервера, пользователи могут предпринять несколько шагов, которые могут помочь решить проблему и устранить существующую неисправность.

В последующих разделах мы постарались перечислить наиболее распространенные сетевые ошибки, с которыми могут сталкиваться пользователи при взаимодействии с ресурсами сети «Интернет», а также упомянули пару полезных решений для исправления каждой ошибки. Пользователи не могут решить все онлайн-ошибки, так как некоторые из них происходят по вине серверов, и с ними мало что можно поделать для успешного восстановления работоспособности. Тем не менее, в ряде случаев, стоит попробовать устранить возникшую ошибку.

«400 Bad Request» («ошибка неверного запроса»)

Каждый раз, когда пользователи пытаются открыть веб-сайт путем набора «URL-адреса» в адресной строке сетевого обозревателя или нажимают на соответствующую ссылку сайта, полученную посредством различных приложений, веб-браузер инициирует запрос и отправляет его на удаленный сервер веб-сайта, к которому пользователи организовывают соответствующее обращение и стараются получить доступ. Ошибка «400» возникает, когда сервер не может полноценно понять и корректно обработать запрос. Такой вид непредвиденной ошибки может произойти, если указанный запрос искажен, неверен, испорчен или поврежден, но, чаще всего, ошибка возникает по довольно простой причине, например, пользователь использовал «URL-адрес» веб-сайта, которого не существует.

В большинстве случаев пользователи самостоятельно могут решить возникшую проблему и далее представлено несколько простых способов, которые можно задействовать для исправления указанной ошибки.

Обновите страницу. Нажатие клавиши «F5» обновляет страницу в большинстве браузеров. Если проблема связана с поврежденным запросом, то его повторная отправка иногда может помочь. Процесс не займет много времени и его всегда стоит попробовать. Ошибка «400» часто является временной, и простое обновление способно нередко ее исправить.

Перепроверьте «URL- адрес». Иногда неверный «URL-адрес», указанный пользователем в адресной строке обозревателя, может вызвать ошибку «400 Bad Request» вместо ошибки «404 Not Found» (о которой мы также поговорим в одном из разделов). Просмотрите и исправьте адрес при необходимости.

Произведите поиск страницы на сайте. Возможно, ошибка в названии веб-страницы искомого сайта была допущена самим пользователем или непосредственно неверный адрес был указан в ссылке, с которой осуществлен переход на страницу. Но если страница на сайте существует, то можно в строке поиска веб-сайта указать части полного адреса страницы, чтобы получить к ней доступ через поисковую панель.

Очистите файлы «cookie» и содержимое кэша используемого веб-браузера. Иногда, при обращении к веб-сайту, от сервера возвращается ответ с ошибкой «400», потому что происходит попытка прочесть «cookie» на пользовательском компьютере, которые повреждены или сильно устарели, или, как вариант, браузер кэшировал поврежденную версию страницы, которую пользователь пытается открыть. Своевременная очистка данных кэша и файлов «cookie» может помочь исправить неприятную ошибку.

«403 Forbidden» (ошибка «запрещено»)

Ошибка «403» возникает при попытке доступа к странице или сетевому ресурсу, к которым у пользователя нет соответствующего разрешения. В большинстве случаев, устранить проблему запрета доступа силами конкретного пользователя не получиться. Обычно подобное сообщение об ошибке возникает по одной из двух причин. В первом случае, владельцы веб-сервера корректно настроили права доступа, а пользователь действительно не обладает соответствующими допусками для перехода на удаленный ресурс. В другом случае, причина заключается в том, что собственники веб-сервера неправильно настроили разрешения (случайно или преднамеренно), и пользователь получает отказ в доступе, когда он действительно необходим, даже при наличии необходимых привилегий.

Несмотря на тот факт, что ошибка «403», ограничивающая доступ к удаленному ресурсу, регулируется и управляется настройками сетевого веб-сервера, пользователи могут опробовать несколько шагов для ее исправления.

Обновите страницу. Нажатие клавиши «F5» во многих популярных обозревателях позволяет мгновенно обновить страницу.

Повторно проверьте «URL- адрес». Иногда неверно заданный в строке обозревателя «URL-адрес» может вызвать появление ошибки запрета доступа «403 Forbidden». Убедитесь, что «URL-адрес» действительно указывает на страницу, а не на каталог. Большинство веб-сайтов ограничивают доступ к своим внутренним папкам из соображений безопасности, и опечатка в адресе может быть причиной отображения ошибки «403».

Проверьте собственные разрешения. Некоторые веб-сайты ограничивают доступ к своему содержимому, разрешая удаленное обращение только зарегистрированным участникам или пользователям, обладающим определенным уровнем привилегированного доступа. Если вход в систему не был осуществлен или у пользователей нет соответствующих разрешений, то, скорее всего, система выдаст ошибку «403 Forbidden».

«404 Not Found» (ошибка «не найдено»)

Ошибка «404 Not Found» – самая распространенная ошибка в сети, которая возникает при попытке посетить несуществующую веб-страницу. В основном, данная ошибка подразумевает, что серверу не удалось найти, искомый пользователями, удаленный ресурс. В большинстве случаев, в обозревателе появится сообщение об ошибке «404» после неудачной попытки ввести «URL» искомой страницы или перейти по соответствующей ссылке, которая на сервере абсолютно не представлена. И если пользователи сталкиваются с ошибкой «404», то можно попробовать ее исправить несколькими способами.

Обновите проблемную страницу. Нажатие клавиши «F5» инициирует обновление страницы в подавляющем большинстве современных веб-браузеров. Не всегда такое решение сможет устранить ошибку «404». Но иногда, на веб-серверах может происходить случайный сбой и, как следствие, отображение страницы, которая действительно существует, будет временно приостановлено. Поэтому необходимо обязательно опробовать данный способ и перегрузить страницу, в особенности, если на обновление будет потрачено всего несколько секунд, но существует шанс добиться корректной загрузки.

Убедитесь в правильности «URL- адреса». Неверно введенные «URL-адреса» (независимо от того, была ли допущена ошибка в процессе набора или веб-страница содержит неверную ссылку) являются наиболее частой причиной отображения в обозревателе сообщения об ошибке «404 Not Found».

Осуществите поиск требуемой страницы на сайте. Возможно пользователи получили неверный «URL-адрес» или на веб-сайте, с которого был осуществлен переход, указана ошибочная ссылка, но страница на искомом ресурсе существует. Попробуйте найти, посредством использования возможностей поисковой панели сайта, «URL» требуемой страницы по названию.

«500 Internal Server Error» («внутренняя ошибка сервера»)

Если пользователь пытается посетить веб-сайт и на странице веб-браузера всплывает сообщение «500 Internal Server Error», это обычно означает, что на сетевом ресурсе, к которому непосредственно происходит обращение, существует определенная неполадка и сервер не может предоставить более конкретную информацию. Проблема относится только к сайту и никак не связана с настройками и функционированием пользовательского веб-браузера, персонального компьютера или задействованным способом подключения к сети «Интернет».

Как и в случае с другими проблемами, которые мы обсуждали ранее, пользователь можете попытаться решить возникшую неисправность лишь несколькими способами.

Обновите страницу обращения. Большинство распространенных веб-браузеров используют стандартный набор клавиш для быстрого исполнения списка команд, и нажатие на клавишу «F5» позволяет сразу обновить активную страницу. К сожалению, во многих случаях, данный способ не работает по причине неисправности на удаленном ресурсе.

Важное замечание. Не пытайтесь перезагрузить страницу, если перед получением данного сообщения об ошибке «500» была предпринята попытка осуществить онлайн-платеж или любой вид денежного перевода. Принудительное обновление страницы может привести к отправке одного и того же платежа дважды. Большинство веб-сайтов обладают встроенным инструментом защиты и должны препятствовать повторному переводу денежных средств, но проблема может возникнуть, если веб-сайт испытывает проблему во время выполнения платежа.

Обратитесь к ресурсу позже. Довольно часто проблемы с сервером носят временный характер. Попробуйте посетить страницу после небольшого перерыва.

Свяжитесь с администрацией сайта. Если проблема не устранена, попробуйте, при возможности, связаться со службой поддержки веб-сайта, и сообщить им о возникших неполадках.

«502 Bad Gateway» («ошибка шлюза»)

Ошибка «502 Bad Gateway» означает, что посещаемый вами сервер пытался получить некоторую информацию с другого сервера, но получил неверный ответ. Причиной могут послужить несколько факторов. Возможно, сервер перегружен или возникли неполадки с сетью между двумя серверами, что носит временный характер, и может быть быстро исправлено. Также, как вариант, могут оказывать влияние на отсутствие доступа неправильные настройки брандмауэра или даже ошибка кодирования. В довольно редких случаях ошибка может возникать из-за проблемы на пользовательском компьютере или сетевом оборудовании. Поэтому стоит попробовать применить несколько шагов для возможного исправления ситуации.

Обновите страницу после отображения сообщения об ошибке. Как и в предыдущих случаях, воспользуйтесь быстрым способом перезагрузки страницы посредством нажатия в веб-браузере клавиши «F5».

Проверьте, доступен ли сайт для других пользователей. Посетите сайт, такой как «IsItDownRightNow» или «DownforEveryoneorJustMe», который отслеживает состояние веб-сайтов и проверяет их работоспособность для уточнения данных, испытывают ли другие пользователи трудности с доступом к конкретному ресурсу, или проблемы возникают только локально на пользовательском устройстве.

Попробуйте получить доступ к веб-сайту позже. Возможно, проблема с сервером носит временный характер, и спустя некоторое время полноценная функциональность ресурса будет восстановлена. Поэтому попробуйте обратиться к сайту позже через некоторое время.

Выполните очистку «cookie» и содержимого кэша пользовательского браузера. Иногда (хотя и редко) серверы возвращают ошибки формата «502», потому что веб-браузер, который регулярно использует пользователь для выхода в сеть «Интернет», кэшировал устаревшие или поврежденные файлы. Процедура очистки содержимого кэша и файлов «cookie» может помочь исправить ошибку.

«503 Service Unavailable» (ошибка «сервис недоступен»)

Ошибка «503 Service Unavailable» означает, что сервер временно не может обработать запрос пользователя. Ошибка может возникать по ряду причин, но наиболее распространенная, из доступного списка вариантов, состоит в том, что сервер перегружен внешними запросами. Отображение данной ошибки на странице веб-браузера после обращения пользователя фактически означает, что с сервером все в порядке, его работоспособность не нарушена и он может обработать ваш запрос, но чрезмерная нагрузка не позволяет этого сделать в данный момент. Подобно всем ошибкам формата «5XX», ошибка «503» происходит на сервере, и, следовательно, с пользовательским компьютером все в порядке, и он не влияет на ее наличие.

Но несмотря на удаленную форму неисправности, можно попробовать применить несколько способов для устранения ошибки.

Обновите страницу с сообщением об ошибке. Нажмите на клавишу «F5» и принудительно обновите проблемную страницу (стандартный способ перезагрузки поддерживается многими основными веб-браузерами).

Проверьте работоспособность ресурса. Перейдите в веб-браузере на сайт проверки состояния удаленных ресурсов, например, «IsItDownRightNow» или «DownforEveryoneorJustMe», и оцените его доступность для других пользователей.

Попробуйте выполнить переход на сайт позже. Проблемы с сервером часто бывают временными. В частности, при отображении сообщения с ошибкой «503», велика вероятность, что сервер перегружен запросами и не может обработать все входящие обращения, который он получает. Попробуйте посетить страницу еще раз позже через некоторое время.

Полную версию статьи со всеми дополнительными видео уроками смотрите в источнике. Если у вас остались вопросы, задавайте их в комментариях.

Данный материал является частной записью члена сообщества Club.CNews.
Редакция CNews не несет ответственности за его содержание.

В этой статье разберем, что может сделать администратор сайта, чтобы исправить ошибки сервера при доступе к веб-странице. Это пригодится тем, кто сам занимается сайтом компании без программиста в штате. 

Что такое ошибки сервера

Когда вы пытаетесь зайти на веб-сайт, браузер отправляет HTTP-запрос на сервер, где этот сайт находится. Каждый HTTP-запрос, принятый сервером, получает код состояния HTTP — трехзначное число. 

Если в этом числе первая цифра — 5, это ошибка сервера. Коды класса 5** возвращаются веб-сервером, когда он сталкивается с ошибкой и не может обработать запрос клиента.

500: Internal Server Error

Самая распространенная внутренняя ошибка сервера. Код генерируется при любой проблеме, которая не относится к ошибкам 502–524, поэтому у кода 500 много причин появления.

Причины появления:

  • ошибки в скриптах сайта, в коде CMS и их плагинов;
  • неверные директивы, указанные в файле .htaccess;
  • ошибки в конфигурационных файлах веб-сервера при использовании ручного режима настройки.

В редких случаях ошибка 500 может появиться из-за внедрения в файлы сайта вредоносного кода.

Устраняем своими силами

Проверьте логи ошибок веб-сервера. На хостинге RU-CENTER они размещены в каталоге /var/log, он открывается через панель управления хостингом → «Файловый менеджер». Так как используется веб-сервер Apache совместно с nginx, то логи размещаются в отдельных директориях: httpd и nginx соответственно.

Лог-файл — это текстовый файл с информационными сообщениями веб-сервера. Если ошибка связана с неверными директивами в .htaccess, с ошибками в работе CGI-скриптов или в файле конфигурации веб-сервера, вы увидите причину ошибки в логе веб-сервера и сможете ее устранить.

Доступные логи:

  • имя_сайта.access_log — лог обращений к сайту;
  • имя_сайта.error_log — лог ошибок сайта;
  • php_XY_error_log — лог ошибок веб-сервера для выбранной версии PHP;
  • файлы с расширением .gz — архивные логи за предыдущие дни.

Если не получилось

Если ошибка возникает при работе PHP-скрипта, текст ошибки в лог может не попасть. В этом случае нужна дополнительная диагностика, рекомендуем обратиться за консультацией к разработчику сайта или специалистам службы поддержки.

502: Bad Gateway

Ошибка означает, что сервер не смог обработать полученный запрос по техническим причинам.

Причины появления

  1. Веб-сервер выключен.
  2. В конфигурации веб-сервера есть ошибка.
  3. Для работы сайта недостаточно оперативной памяти или других ресурсов. Например, при DDoS-атаке на сайт, когда на обработку «паразитных» запросов тратятся ресурсы веб-сервера.
  4. Произошла ошибка при работе с памятью в скрипте, это часто встречается при использовании старых версий PHP.
  5. Время выполнения скрипта превысило установленные на сервере ограничения.

Устраняем своими силами

  • Проанализируйте уровень общей нагрузки на сервер и нагрузки в момент появления ошибки. На хостинге RU-CENTER это можно сделать в панели управления хостингом в разделе «Ресурсы» → «Статистика». Обратите внимание на пики потребления оперативной памяти.
  • Проверьте лог-файлы веб-сервера и сайта, как мы писали выше, посмотрите на запросы к сайту во время, когда значения были пиковыми, а также обратите внимание на их количество. Если вы обнаружите в них подозрительные сообщения, обратитесь в техподдержку хостинг-провайдера.

Если не получилось

Обратитесь к техническому специалисту, чтобы проверить оптимальность работы скриптов на сайте и оценить скорость обработки запросов. Иногда стоит отказаться от таких операций или оптимизировать их.

503: Service Unavailable

Ошибка означает, что в течение некоторого времени сервер не сможет обрабатывать запросы из-за технических неисправностей.

Причины появления

  1. Передача большого объема данных.
  2. Превышено время ожидания загрузки.
  3. Большое количество запросов к серверу.
  4. На хостинге RU-CENTER этот код может появиться при обращении к сайту, которого на хостинге нет.

Устраняем своими силами

Если на сайте все процессы (код, скрипты) работают без перебоев, вероятно, причина ошибки 503 — недостаток ресурсов. Чтобы решить проблему, может потребоваться переход на более производительный тариф или сервер. Для принятия решения проконсультируйтесь со службой поддержки и разработчиком сайта.

Если не получилось

Обратитесь в службу поддержки хостинг-провайдера или к разработчику.

504: Gateway Timeout

Серверу не хватило времени, чтобы получить ответ от другого сервера и завершить операцию. Как правило, среднее время загрузки не должно быть больше 1–3 секунд.

Причины появления

  1. Долгая обработка запроса скриптами сайта.
  2. Обработка большого количества данных.

Устраняем своими силами

Нужно проверить, что происходит на сервере в момент появления ошибки 504. Если вы обрабатываете большие объемы данных или выполняете операции, требующие длительного времени, настройте эти операции не через браузер, а с помощью планировщика заданий или по SSH.

Еще для устранения ошибки можно попробовать увеличить в настройках PHP время выполнения скрипта (max_execution_time) и время получения данных (max_input_time).

Если не получилось

Обратитесь в службу поддержки хостинг-провайдера или к разработчику.

505: HTTP Version Not Supported

Ошибка 505 появляется, если использовать версию протокола HTTP, которую не поддерживает сервер. 

Причины появления

  1. Заражение вирусом, который получил контроль над браузером или исходящим трафиком.
  2. Работа с устаревшим браузером, который не поддерживает современные версии HTTP.
  3. Сервер не поддерживает новые версии протокола, по которым проходит соединение.

Устраняем своими силами

  • Поищите вирусы с помощью вашей антивирусной программы. Вредоносные ПО могут повредить и удалить файлы, нужные браузеру для определения состояний. 
  • Обновите систему — версию ОС и/или браузера. Это поможет предотвратить не только ошибку 505, но и ряд других проблем. Если вы отключили автоматические обновления, рекомендуем скачать и установить их.

Если не получилось

Проверьте актуальность программного обеспечения на веб-сервере. Рекомендуем привлечь для этого специалиста. 

520: Web Server Is Returning an Unknown Error

Ошибка 520 может появляться, если вы используете для своего сайта сервисы Cloudflare для перенаправления трафика. Если Cloudflare не удается обработать ответ сервера, на котором размещен сайт, то он выдает эту ошибку.

Причины появления

  1. Разрыв соединения, когда запрос к серверу был успешным.
  2. Превышение размера заголовка запроса (больше 16 Кб).
  3. Ответ сервера не содержит информацию.
  4. Ответ сервера некорректен.

Устраняем своими силами

Если любое из вышеперечисленных условий исходит от веб-сервера, на котором размещен сайт, нужно обратиться в техподдержку хостинг-провайдера.

Правила ограничения скорости Cloudflare или другие запросы фильтрации иногда могут вызывать проблемы в работе сайта. Важно проверить и протестировать ваш сайт после подключения сервисов Cloudflare. Если на сервере хостинга используются системы безопасности, блокирующие запросы к сайту, обязательно укажите IP-адреса Cloudflare в белом списке, чтобы исключить вероятность блокировки запросов.

Если не получилось

Обратитесь в техническую поддержку Cloudflare.

521: Web Server Is Down

Ошибка 521 может появляться, если вы используете для своего сайта сервисы Cloudflare для перенаправления трафика. Браузер показывает ошибку 521, когда веб-сервер неожиданно обрывает соединение с Cloudflare.

Причины появления

Невозможно получить ответ от сервера.

Система безопасности веб-сервера внесла запросы Cloudflare в черный список. Это связано с тем, что система работает по принципу обратного прокси-сервера. Ваша система безопасности могла принять периодические подключения от статических IP-адресов за DDoS-атаку. Из-за этого адреса блокируются или ограничиваются по скорости.

Устраняем своими силами

Возможно, веб-сервер отключен или работает с перебоями. В таком случае:

  1. Убедитесь, что ваш веб-сервер работает нормально.
  2. Просмотрите журналы ошибок сервера, чтобы выявить причину ошибки.

Если веб-сервер или хостинг-провайдер блокируют запросы Cloudflare, внесите в белый список все диапазоны IP-адресов сервиса в брандмауэре сервера или другом программном обеспечении для защиты — для этого проконсультируйтесь со службой поддержки провайдера.

Если не получилось

Обратитесь в техническую поддержку Cloudflare.

522: Connection Timed Out

Ошибка 522 может появляться, если вы используете для своего сайта сервисы Cloudflare для перенаправления трафика. Ошибка возникает, когда превышено время ожидания ответа от веб-сервера.

Причины появления

  1. Веб-сервер не может ответить на запрос из-за высокой загруженности.
  2. Система защиты веб-сервера блокирует запросы Cloudflare.
  3. Нет доступа к веб-серверу.
  4. Некорректно указаны настройки DNS на Cloudflare: запросы отправляются по другому адресу.
  5. Неверная настройка маршрутизации между Cloudflare и веб-сервером.

Устраняем своими силами

Убедитесь, что:

  • IP-адреса Cloudflare не блокируются в брандмауэре;
  • ваш хостинг-провайдер не ограничивает скорость и не блокирует запросы от Cloudflare;
  • веб-сервер не перегружен.

Если не получилось

Обратитесь в техническую поддержку Cloudflare, чтобы устранить неисправную маршрутизацию в сети между Cloudflare и исходным веб-сервером.

524: A Timeout Occurred

Ошибка 524 может появляться, если вы используете для своего сайта сервисы Cloudflare для перенаправления трафика. Браузер покажет эту страницу, когда подключение к веб-серверу будет установлено, но его ответ превысит лимит ожидания. Cloudflare ожидает HTTP-ответ в течение 100 секунд.

Причины появления

  1. Проблемы в работе PHP-скриптов или сбой базы данных.
  2. Высокая загруженность веб-сервера.

Устраняем своими силами

Проверьте доступные ресурсы веб-сервера, включая процессор, оперативную память и общий уровень трафика. Высокий уровень использования памяти или высокая загрузка процессора могут сигнализировать о проблеме с ресурсами. Может потребоваться переход на более производительный тариф или сервер. Для принятия решения проконсультируйтесь со службой поддержки и разработчиком сайта.

Если вы регулярно отправляете HTTP-запросы, выполнение которых занимает более 100 секунд (например, экспорт больших данных), подумайте о перемещении этих длительных процессов в поддомен, который не проксируется Cloudflare.

Если не получилось

Обратитесь в техническую поддержку Cloudflare.

Умные люди придумали коды, по которым можно определить, что произошло с HTTP-запросом. Успешен ли он, произошло ли перенаправление. Или же все закончилось ошибкой. Как раз об ошибках и будем говорить в этой статье. Вкратце расскажу, какие они бывают и с чем связаны. 

А еще тут будет парочка забавных (и не очень) пикч и анимаций на тему описанных ошибок. Хоть какое-то развлечение.

Ошибки со стороны клиента (4xx)

Для начала перечислим коды ошибок на стороне клиента. Вина за их появление ложится на плечи обоих участников соединения.

400 Bad Request

Такой ответ от браузера можно получить в том случае, если сервер не смог правильно отреагировать на запрос со стороны пользователя. Часто код 400 возникает при попытке клиента получить доступ к серверу без соблюдения правил оформления синтаксиса протокола передачи гипертекста (HTTP). Повторный запрос не стоит отправлять до тех пор, пока не будет исправлена ошибка (или несколько из них). 

401 Unauthorized

Код 401 возникает при попытке клиента получить доступ к серверу, используя неправильные данные для авторизации. По сути, используется, когда пользователь вводит неправильный логин и пароль на ресурсе, где требуется эта информация для входа. Читайте: Как исправить ошибку 401

402 Payment Required

Эта ошибка сообщает клиенту о том, что для успешного выполнения запроса ему необходимо оплатить доступ к серверу. Изначально код 402 должен был стать неким стандартом для цифровой валюты и оплаты контента в сети. Но не срослось. До сих пор нет единого решения по поводу того, как должны выглядеть платежи в сети. Также нет и единого решения по поводу того, как стоит использовать 402. 

Все еще считается, что код существует с расчетом на будущее. Сейчас почти не используется и поддерживается не всеми браузерами.

403 Forbidden

Почти то же, что и 401. Сервер снова не разрешает к нему подключиться, хотя с запросом все в порядке. Просто нет доступа. Причем повторная авторизация с другими логином и паролем никак не помогут. Все вопросы к владельцам сервера (но не всегда). Инструкция по устранению ошибки. 

Анимация на тему 403 

Творчество на тему знаменитой киносаги

404 Not Found

Легендарная ошибка, ставшая популярным мемом. 404 оповещает клиента о том, что его запрос ведет в никуда. Код возникает, когда пользователь пытается попасть на страницу, которой не существует. Например, когда случайно ошибается при вводе ссылки и вводит ее с опечаткой. Или же пытается получить доступ к странице, которой на сайте уже нет. 

В отличие от других кодов, страницу с 404 частенько кастомизируют, создавая для нее уникальный дизайн. Мало того, что это выглядит симпатичнее, так еще и полезнее для посетителей. Можно прямо на странице с ошибкой разъяснить, что произошло и как дальше действовать.

Ошибка 404

Еще вариант оформления ошибки 404

И таких вариаций тысячи. Каждый пытается добавить в оформление что-то свое.

405 Method Not Allowed

405 сообщает клиенту о том, что метод, используемый при запросе, не разрешен. В качестве примера можно привести попытку со стороны клиента ввести данные в форму с помощью GET, когда она работает только с POST. Ну и в таком же духе. 

406 Not Acceptable

Ошибка 406 сообщает о том, что страница передает контент, который не может быть распознан клиентом. Возможно, проблема в методе сжатия или в формате страницы. Иногда сюда же приплетают неправильные настройки кодировки.

Этот код редко используют на практике, так как его появления можно избежать, предоставив пользователю информацию на сайте в том виде, который его браузер способен принять. Посетитель сайта по итогу получит не то, что ожидал, но хотя бы не ошибку.

407 Proxy Authentication Required

Этот код тоже похож на 401. Только на этот раз логин и пароль нужны не для основного сервера, а для прокси, который находится между клиентом и сервером. Обычно в теле ошибки содержится информация о том, как можно правильно пройти авторизацию и получить доступ к ресурсу.

408 Request Timeout

408 говорит нам о том, что сервер пожелал разорвать соединение с клиентом, потому что оно никак не используется. Происходит это в том случае, если сервер буквально устал ждать, пока наладится соединение с ним. Поэтому такую ошибку часто можно лицезреть после очень долгой и безуспешной загрузки какого-нибудь сайта. 

Многие серверы не отправляют никаких сообщений, а просто прерывают соединение по той же причине. На запрос уходит больше времени, чем на то полагается.

Кадр из фильма Мистер Робот 

В Мистере Роботе частенько называли серии в честь ошибок HTTP (весь четвертый сезон в нумерации 4хх). В честь 408, например, назвали восьмую серию четвертого сезона

409 Conflict

Сообщение о конфликте возникает, когда запрос со стороны клиента не соответствует тому, чего ожидает сервер. В качестве примера приводят проблемы при проверки версий, когда пользователь пытается с помощью метода PUT загрузить на сервер новый файл, но там уже имеется более новая версия того же файла. Конфликта версий можно легко избежать, загрузив корректную версию.

410 Gone

Своего рода аналог 404. Разница лишь в том, что 410 намекает на перманентность отсутствия страницы. Так что этот код стоит использовать, когда на 100% уверен, что страница ушла в небытие (ну или с текущего адреса) навсегда. В любом другом случае есть универсальный 404. 

411 Length Required

411 оповещает пользователя о том, что сервер не желает принимать запрос со стороны клиента, потому что в нем не определен заголовок Content-Length. Да, это первый код в подборке, который смогут понять только люди, сведущие в настройке серверов. По-простому уложить сущность HTML-заголовков в этот материал не получится.

412 Precondition Failed

Еще один код, сообщающий о том, что сервер отклонил запрос пользователя и не разрешает доступ к выбранному ресурсу. Проблемы возникают при неправильной настройке работы методов, отличающихся от GET и HEAD. 

413 Payload Too Large/Request Entity Too Large

Код 413 говорит нам, что запрос, который посылает клиент на сервер, слишком большой. Поэтому сервер отказывается его обрабатывать и разрывает соединение. Обычно это происходит при попытке загрузить на ресурс какой-то файл, превышающий ограничение, выставленное в настройках сервера. Соответственно, решается проблема изменением настроек сервера. 

414 URI Too Long

Чем-то этот код похож на предыдущий. Здесь тоже идет речь о превышение лимита. Только теперь это касается не запроса со стороны клиента, а длины URI. То есть ссылки. Выходит, что адрес, используемый клиентом, больше, чем тот, что может обработать сервер. Как-то так. 

Такая ошибка иногда выскакивает при попытке взломать ресурс. Сайт так реагирует на слишком частые попытки воспользоваться потенциальными дырами в безопасности.

415 Unsupported Media Type

Ошибка 415 возникает, когда клиент пытается загрузить на сервер данные в неподходящем формате. В таком случае сервер просто отказывается принимать посылаемые файлы и разрывает соединение. Как и в случае с 413. 

416 Range Not Satisfiable

Подобный ответ можно ожидать, если клиент запрашивает у сервера определенные данные, но эти данные на сервере не соответствуют запросу. То есть, грубо говоря, вы просите у сервера какой-то набор данных с заранее заданным размером, а в итоге оказывается, что размер этих данных меньше, чем объем, указанный в запросе. Серверу ничего не остается, кроме как послать вас, ведь он не обучен поведению в таких ситуациях.

417 Expectation Failed

Такая ошибка высвечивается, когда ожидания сервера не совпадают с данными в запросе клиента. Сведения об ожиданиях прописываются в заголовке Expect заранее. Так что можно ознакомиться с ними, чтобы выяснить, как решить названную проблему.

418 I’m a teapot

Код 418 можно увидеть, если сервер откажется варить кофе, потому что он чайник. Это первоапрельская шутка. Естественно, 418 не используется нигде всерьез и просто существует как дань памяти программистам-юмористам, придумавшим это в 1998 году.

Чайник на сайте Google

У Google получился такой симпатичный чайник

421 Misdirected Request

Появляется когда запрос клиента переправляется на сервер, который не может дать на него адекватный ответ. Например, если запрос был отправлен на ресурс, который вообще не настроен обрабатывать запросы извне. 

Чтобы исправить проблему, можно попробовать переподключиться к ресурсу заново или попробовать другое соединение.

422 Unprocessable Entity

Код 422 говорит, что сервер вроде бы принял запрос, понял его, все хорошо, но из-за семантических ошибок корректно обработать не смог. Значит, где-то в запросе затаилась логическая ошибка, мешающая корректному взаимодействию клиента и сервера. Надо ее найти и исправить.

423 Locked

Обычно на этот код напарываются, когда запрашиваемый ресурс оказывается под защитой. Используемые клиентом методы блокируются на уровне сервера. Это делается, чтобы обезопасить данные, хранящиеся на защищенной странице. Без логина и пароля выудить информацию с такого сервера не получится.

424 Failed Dependency

424 сообщает о том, что для выполнения запроса со стороны клиента успешно должна завершиться еще одна или несколько параллельных операций. Если какая-то из них «провалится», то «помрет» все соединение сразу, и обработать запрос до конца не получится. Аналогичное происходит, если некорректно был обработан один из предыдущих запросов.

425 Too Early

Появляется в ответ на запрос, который может быть моментально запущен заново. Сервер не рискует и не берется за его обработку, чтобы не подставиться под так называемую «атаку повторного воспроизведения».

426 Upgrade Required

Тут нам прямо сообщают, что сервер не желает с нами общаться, пока мы не перейдем на более современный протокол. Наткнуться на такую ошибку очень тяжело, но в случае появления, скорее всего, будет достаточно установить браузер посвежее.

428 Precondition Required

428 выскакивает, если пользователь отправляет запрос на сервер, но получает некорректные или неактуальные данные. Так ресурс оповещает о необходимости внести в запрос информацию о предварительных условиях обработки данных. Только так он сможет гарантировать получение клиентом нужной информации.

429 Too Many Requests

Здесь все просто. Ошибка появляется, когда клиент отправляет на сервер слишком много запросов в короткий промежуток времени. Очень похоже на поведение взломщиков. По этой причине запрос моментально блокируется. 

Ошибка 429

431 Request Header Fields Too Large

Из названия понятно, что ошибка с кодом 431 появляется из-за того, что в запросе клиента используются слишком длинные заголовки (неважно, один или несколько из них). Исправляется это с помощью сокращения заголовков и повторной отправки запроса. В теле ошибки обычно отображается краткая информация о том, как пользователь может решить эту проблему самостоятельно.

444 No Response

Этот код вам вряд ли удастся увидеть. Он отображается в лог-файлах, чтобы подтвердить, что сервер никак не отреагировал на запрос пользователя и прервал соединение. 

449 Retry With

Код используется в расширениях компании Microsoft. Он сигнализирует о том, что запрос от клиента не может быть принят сервером. Причиной становятся неверно указанные параметры. Сама 449 ошибка говорит о необходимости скорректировать запрос и повторить его снова, подготовив к работе с сервером.

450 Blocked by Windows Parental Controls

450 код увидят дети, попавшие под действие системы «Родительский контроль» компании Microsoft. По сути, ошибка говорит о том, что с компьютера попытались зайти на заблокированный ресурс. Избежать этой ошибки можно изменением параметров родительского контроля.

451 Unavailable For Legal Reasons

Этот код сообщает клиенту, что он не может попасть на запрашиваемый ресурс из юридических соображений. Скорее всего, доступ был заблокирован из-за каких-нибудь государственных санкций, нового законодательства или цензуры со стороны властей. В общем, все вопросы к государству и провайдеру связи.

Лого Роскомнадзора

Читайте также

Ошибка сервера 504

Ошибка сервера 403

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Список ошибок на стороне сервера (5xx)

Теперь поговорим об ошибках, которые возникают где-то на сервере. Все они связаны с запросами, которые не удается обработать на том конце. Пользователь зачастую в их появлении не виноват.

500 Internal Server Error

Этот код возникает, когда сервер сталкивается с непредвиденными обстоятельствами. Такими, которые и сам не может пояснить. Как, собственно, и завершить запрос со стороны пользователя. По факту, эта ошибка говорит нам что-то вроде «Я не могу подобрать более подходящий код ошибки, поэтому лови 500 и делай с этим, что хочешь». Мы писали о нем чуть подробнее тут.

Ошибка 500

Дело не в тебе, дело во мне (С)

 Синий экран смерти

501 Not Implemented

501 говорит нам, что функциональность, необходимая для обработки запроса со стороны клиента, попросту не реализована на сервере. Он не сможет корректно обработать используемый метод. 

Иногда в теле ошибки еще пишут что-то в духе «Приходите попозже, возможно, в будущем нужная функция появится».

502 Bad Getaway

Можно встретить в том случае, если запрашиваемый сервер выступает в роли шлюза или прокси. Возникает из-за несогласования протоколов между вышестоящим серверов и его шлюзом. Рассказываем о том, как ее исправить, в этой статье. 

503 Service Unavailable

Появляется, когда сервер не может обработать запрос клиента по одной из двух технических причин:

  1. Слишком много пользователей в текущий момент пытаются отправить запросы, и у сервера не остается ресурсов, чтобы ответить кому-либо еще.
  2. На сервере ведутся технические работы, временно блокирующие его работу.

Обычно ошибка 503 носит временный характер, и для ее решения достаточно немного подождать. 

504 Gateway Timeout

Ошибка похожа на 408. Здесь же прокси-сервер пытается выйти на контакт с вышестоящим сервером, но не успевает это сделать до истечения тайм-аута. Отсюда и ошибка.

 Вариант оформления ошибки 504

505 HTTP Version Not Supported

Этот код похож на 426. Он тоже связан с неподходящей версией протокола HTTP. В этом случае нужно обеспечить и клиента, и сервер единой версией. Она, как правило, указывается в запросе со стороны пользователя. 

506 Variant Also Negotiates

Обычно с такой ошибкой сталкиваются только в том случае, если сервер изначально настроен неправильно. То есть это не сиюминутная проблема, а что-то серьезное на уровне базовой конфигурации. Тут придется потрудиться разработчикам. Выявить проблему и разрешить ее.

507 Insufficient Storage

Код 507 встречается в тех ситуациях, когда серверу не хватает пространства в хранилище для обработки запроса со стороны клиента. Проблема решается освобождением места или расширением доступного пространства. Тогда сервер сможет без проблем обработать запрос пользователя.

508 Loop Detected

Таким кодом сервер отзовется в случае, если заметит бесконечный цикл в запросе клиента. Можно расценивать его как провал запроса и выполняемой операции в целом.

509 Bandwidth Limit Exceeded

Возникает, если сервер начинает потреблять больше трафика, чем ему позволено. 

510 Not Extended

Появляется, если клиент посылает запрос на использование какого-либо расширения, отсутствующего на сервере. Чтобы исправить проблему, надо убрать декларирование неподдерживаемого расширения из запроса или добавить поддержку на сервер.

511 Network Authentication Required

511 код говорит о том, что перед тем как выйти в сеть, надо авторизоваться (ввести логин и пароль). Можно воспринимать это неким PPPoE подключением, когда от клиента требуются данные для авторизации.

Заключение

Закончили. Это все ошибки, которыми отзывается HTTP, если на стороне сервера или клиента что-то пошло не так. Наткнуться на большую их часть довольно тяжело. Особенно, если вы раньше только серфили в интернете, а не занимались разработкой сайтов. А тем, кто входит в эту стезю, полезно знать основные ошибки, так как, скорее всего, придется не раз их исправлять. 

Содержание

  • Что такое код ответа HTTP
  • Как проверить код состояния страницы
  • В браузере
  • В Яндекс.Вебмастере
  • В Google Search Console
  • 1* класс кодов (информационные сообщения)
  • 100 Continue
  • 101 Switching Protocols
  • 102 Processing
  • 103 Checkpoint
  • 105 Name Not Resolved
  • 2* класс кодов (успешно обработанные запросы)
  • 200 ОК
  • 201 Created
  • 202 Accepted
  • 203 Non‑Authoritative Information
  • 204 No Content
  • 205 Reset Content
  • 206 Partial Content
  • 207 Multi‑Status
  • 226 IM Used
  • 3* класс кодов (перенаправление на другой адрес)
  • 300 Multiple Choices
  • 301 Moved Permanently
  • 302 Found/Moved 
  • 303 See Other
  • 304 Not Modified
  • 305 Use Proxy
  • 306 Unused
  • 307 Temporary Redirect
  • 308 Resume Incomplete
  • 4* класс кодов (ошибки на стороне клиента)
  • 400 Bad Request
  • 401 Unauthorized
  • 402 Payment Required
  • 403 Forbidden
  • 404 Not Found
  • 405 Method Not Allowed
  • 406 Not Acceptable
  • 407 Proxy Authentication Required
  • 408 Request Timeout
  • 409 Conflict
  • 410 Gone
  • 411 Length Required
  • 412 Precondition Failed
  • 413 Request Entity Too Large
  • 414 Request‑URI Too Long
  • 415 Unsupported Media Type
  • 416 Requested Range Not Satisfiable
  • 417 Expectation Failed
  • 418 I’m a teapot
  • 422 Unprocessable Entity
  • 423 Locked
  • 424 Failed Dependency
  • 425 Unordered Collection
  • 426 Upgrade Required
  • 428 Precondition Required
  • 429 Too Many Requests
  • 431 Request Header Fields Too Large
  • 434 Requested Host Unavailable
  • 444 No Response
  • 449 Retry With
  • 450 Blocked by Windows Parental Controls
  • 451 Unavailable For Legal Reasons
  • 456 Unrecoverable Error
  • 499 Client Closed Request
  • 5* класс кодов (ошибки на стороне сервера)
  • 500 Internal Server Error
  • 501 Not Implemented
  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout
  • 505 HTTP Version Not Supported
  • 506 Variant Also Negotiates
  • 507 Insufficient Storage
  • 508 Loop Detected
  • 509 Bandwidth Limit Exceeded
  • 510 Not Extended
  • 511 Network Authentication Required
  • Составили подробный классификатор кодов состояния HTTP. Добавляйте в закладки, чтобы был под рукой, когда понадобится.

    Что такое код ответа HTTP

    Когда посетитель переходит по ссылке на сайт или вбивает её в поисковую строку вручную, отправляется запрос на сервер. Сервер обрабатывает этот запрос и выдаёт ответ — трехзначный цифровой код HTTP от 100 до 510. По коду ответа можно понять реакцию сервера на запрос. 

    Первая цифра в ответе обозначает класс состояния, другие две — причину, по которой мог появиться такой ответ.

    Как проверить код состояния страницы

    Проверить коды ответа сервера можно вручную с помощью браузера и в панелях веб‑мастеров: Яндекс.Вебмастер и Google Search Console.

    В браузере

    Для примера возьмём Google Chrome.

    1. Откройте панель разработчика в браузере клавишей F12, комбинацией клавиш Ctrl + Shift + I или в меню браузера → «Дополнительные инструменты» → «Инструменты разработчика». Подробнее об этом рассказывали в статье «Как открыть исходный код страницы». 

    2. Переключитесь на вкладку «Сеть» в Инструментах разработчика и обновите страницу: 

    Как посмотреть код ответа сервера в инструментах разработчика в браузере

    Как посмотреть код ответа сервера в инструментах разработчика в браузере

    В Яндекс.Вебмастере

    Откройте инструмент «Проверка ответа сервера» в Вебмастере. Введите URL в специальное поле и нажмите кнопку «Проверить»:

    Как посмотреть код состояния в Вебмастере

    Как посмотреть код состояния в Вебмастере

    Как добавить сайт в Яндекс.Вебмастер и другие сервисы Яндекса

    В Google Search Console

    Чтобы посмотреть код ответа сервера в GSC, перейдите в инструмент проверки URL — он находится в самом верху панели:

    Проверка URL в инструменте GSC

    Проверка URL в инструменте GSC

    Введите ссылку на страницу, которую хотите проверить, и нажмите Enter. В результатах проверки нажмите на «Изучить просканированную страницу» в блоке «URL есть в индексе Google».

    Изучить просканированную страницу в GSC

    Изучить просканированную страницу в GSC

    А затем в открывшемся окне перейдите на вкладку «Подробнее»:

    HTTP код страницы в GSC

    HTTP код страницы в GSC

    Теперь расскажем подробнее про все классы кодов состояния HTTP.

    1* класс кодов (информационные сообщения)

    Это системный класс кодов, который только информирует о процессе передачи запроса. Такие ответы не являются ошибкой, хотя и могут отображаться в браузере как Error Code.

    100 Continue

    Этот ответ сообщает, что полученные сведения о запросе устраивают сервер и клиент может продолжать отправлять данные. Такой ответ может требоваться клиенту, если на сервер отправляется большой объём данных.

    101 Switching Protocols

    Сервер одобрил переключение типа протокола, которое запросил пользователь, и в настоящий момент выполняет действие.

    102 Processing

    Запрос принят — он находится в обработке, и на это понадобится чуть больше времени.

    103 Checkpoint

    Контрольная точка — используется в запросах для возобновления после прерывания запросов POST или PUT.

    POST отправляет данные на сервер, PUT создает новый ресурс или заменяет существующий данными, представленными в теле запроса. 

    Разница между ними в том, что PUT работает без изменений: повторное его применение даёт такой же результат, что и в первый раз, а вот повторный вызов одного и того же метода POST часто меняет данные. 

    Пример — оформленный несколько раз интернет‑заказ. Такое часто происходит как раз по причине неоднократного использования запроса PUT.

    105 Name Not Resolved

    Не удается преобразовать DNS‑адрес сервера — это  означает ошибку в службе DNS. Эта служба преобразует IP‑адреса в знакомые нам доменные имена.

    2* класс кодов (успешно обработанные запросы)

    Эти коды информируют об успешности принятия и обработки запроса. Также сервер может передать заголовки или тело сообщений. 

    200 ОК

    Все хорошо — HTTP‑запрос успешно обработан (не ошибка).

    201 Created

    Создано — транзакция успешна, сформирован новый ресурс или документ.

    202 Accepted

    Принято — запрос принят, но ещё не обработан.

    203 Non‑Authoritative Information

    Информация не авторитетна — запрос успешно обработан, но передаваемая информация была взята не из первичного источника (данные могут быть устаревшими).

    204 No Content

    Нет содержимого — запрос успешно обработан, однако в ответе только заголовки без контента сообщения. Не нужно обновлять содержимое документа, но можно применить к нему полученные метаданные.

    205 Reset Content

    Сбросить содержимое. Запрос успешно обработан — но нужно сбросить введенные данные. Страницу можно не обновлять.

    206 Partial Content

    Частичное содержимое. Сервер успешно обработал часть GET‑запроса, а другую часть вернул.

    GET — метод для чтения данных с сайта. Он говорит серверу, что клиент хочет прочитать какой‑то документ. 

    Представим интернет‑магазин и страницы каталога. Фильтры, которые выбирает пользователь, передаются благодаря методу GET. GET‑запрос работает с  получением данных, а POST‑запрос нужен для отправки данных.

    При работе с подобными ответами следует уделить внимание кэшированию.

    207 Multi‑Status

    Успешно выполнено несколько операций — сервер передал результаты выполнения нескольких независимых операций. Они появятся в виде XML‑документа с объектом multistatus. 

    226 IM Used

    Успешно обработан IM‑заголовок (специальный заголовок, который отправляется клиентом и используется для передачи состояния HTTP).

    3* класс кодов (перенаправление на другой адрес)

    Эти коды информируют, что для достижения успешной операции нужно будет сделать другой запрос, возможно, по другому URL.

    300 Multiple Choices

    Множественный выбор — сервер выдает список нескольких возможных вариантов перенаправления (максимум — 5). Можно выбрать один из них.

    301 Moved Permanently

    Окончательно перемещено — страница перемещена на другой URL, который указан в поле Location.

    302 Found/Moved 

    Временно перемещено — страница временно перенесена на другой URL,  который указан в поле Location.

    303 See Other

    Ищите другую страницу — страница не найдена по данному URL, поэтому смотрите страницу по другому URL, используя метод GET.

    304 Not Modified

    Модификаций не было — с момента последнего визита клиента изменений не было.

    305 Use Proxy

    Используйте прокси — запрос к нужному ресурсу можно сделать только через прокси‑сервер, URL которого указан в поле Location заголовка.

    306 Unused

    Зарезервировано. Код в настоящий момент не используется.

    307 Temporary Redirect

    Временное перенаправление — запрашиваемый ресурс временно доступен по другому URL.

    Этот код имеет ту же семантику, что код ответа 302 Found, за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если в первом запросе использовался POST, то во втором запросе также должен использоваться POST.

    308 Resume Incomplete

    Перемещено полностью (навсегда) — запрашиваемая страница была перенесена на новый URL, указанный в поле Location заголовка. Метод запроса (GET/POST) менять не разрешается.

    4* класс кодов (ошибки на стороне клиента)

    Эти коды указывают на ошибки со стороны клиентов. 

    Скриншот страницы с ошибкой 404 с сайта modcloth.com

    Скриншот страницы с ошибкой 404 с сайта modcloth.com

    400 Bad Request

    Неверный запрос — запрос клиента не может быть обработан, так как есть синтаксическая ошибка (возможно, опечатка).

    401 Unauthorized

    Не пройдена авторизация — запрос ещё в обработке, но доступа нет, так как пользователь не авторизован.

    Для доступа к запрашиваемому ресурсу клиент должен представиться, послав запрос, включив при этом в заголовок сообщения поле Authorization.

    402 Payment Required

    Требуется оплата — зарезервировано для использования в будущем. Код предусмотрен для платных пользовательских сервисов, а не для хостинговых компаний.

    403 Forbidden

    Запрещено — запрос принят, но не будет обработан, так как у клиента недостаточно прав. Может возникнуть, когда пользователь хочет открыть системные файлы (robots, htaccess) или не прошёл авторизацию.

    404 Not Found

    Не найдено — запрашиваемая страница не обнаружена. Сервер принял запрос, но не нашёл ресурса по указанному URL (возможно, была ошибка в URL или страница была перемещена).

    405 Method Not Allowed

    Метод не разрешён — запрос был сделан методом, который не поддерживается данным ресурсом. Сервер должен предложить доступные методы решения в заголовке Allow.

    406 Not Acceptable

    Некорректный запрос — неподдерживаемый поисковиком формат запроса (поисковый робот не поддерживает кодировку или язык).

    407 Proxy Authentication Required

    Нужно пройти аутентификацию прокси — ответ аналогичен коду 401, только нужно аутентифицировать прокси‑сервер.

    408 Request Timeout

    Тайм‑аут запроса — запрос клиента занял слишком много времени. На каждом сайте существует свое время тайм‑аута — проверьте интернет‑соединение  и просто обновите страницу.

    409 Conflict

    Конфликт (что‑то пошло не так) — запрос не может быть выполнен из‑за конфликтного обращения к ресурсу (несовместимость двух запросов).

    410 Gone

    Недоступно — ресурс раньше был размещён по указанному URL, но сейчас удалён и  недоступен (серверу неизвестно месторасположение).

    411 Length Required

    Добавьте длины — сервер отклоняет отправляемый запрос, так как длина заголовка не определена, и он не находит значение Content‑Length. 

    Нужно исправить заголовки на сервере, и в следующий раз робот сможет проиндексировать страницу.

    412 Precondition Failed

    Предварительное условие не выполнено — стоит проверить правильность HTTP‑заголовков данного запроса.

    413 Request Entity Too Large

    Превышен размер запроса — перелимит максимального размера запроса, принимаемого сервером. Браузеры поддерживают запросы от 2 до 8 килобайт.

    414 Request‑URI Too Long

    Превышена длина запроса — сервер не может обработать запрос из‑за длинного URL. Такая ошибка может возникнуть, например, когда клиент пытается передать чересчур длинные параметры через метод GET, а не POST.

    415 Unsupported Media Type

    Формат не поддерживается —  сервер не может принять запрос, так как  данные подгружаются в некорректном формате, и сервер разрывает соединение.

    416 Requested Range Not Satisfiable

    Диапазон не поддерживается — ошибка возникает в случаях, когда в самом HTTP‑заголовке прописывается некорректный байтовый диапазон.

    Корректного диапазона в необходимом документе может просто не быть, или есть опечатка в синтаксисе.

    417 Expectation Failed

    Ожидания не оправдались — прокси некорректно идентифицировал содержимое поля «Expect: 100‑Continue».

    418 I’m a teapot

    Первоапрельская шутка разработчиков в 1998 году. В расшифровке звучит как «я не приготовлю вам кофе, потому что я чайник». Не используется в работе.

    422 Unprocessable Entity

    Объект не обработан — сервер принял запрос, но в нём  есть логическая ошибка. Стоит посмотреть в сторону семантики сайта.

    423 Locked

    Закрыто — ресурс заблокирован для выбранного HTTP‑метода. Можно перезагрузить роутер и компьютер. А также использовать только статистический IP.

    424 Failed Dependency

    Неуспешная зависимость — сервер не может обработать запрос, так как  один из зависимых ресурсов заблокирован.

    Выполнение запроса напрямую зависит от успешности выполнения другой операции, и если она не будет успешно завершена, то вся обработка запроса будет прервана.

    425 Unordered Collection

    Неверный порядок в коллекции — ошибка возникает, если клиент указал номер элемента в неупорядоченном списке или запросил несколько элементов в порядке, отличном от серверного.

    426 Upgrade Required

    Нужно обновление — в заголовке ответа нужно корректно сформировать поля Upgrade и Connection. 

    Этот ответ возникает, когда серверу требуется обновление до SSL‑протокола, но клиент не имеет его поддержки.

    428 Precondition Required

    Нужно предварительное условие — сервер просит внести в запрос информацию о предварительных условиях обработки данных, чтобы выдавать корректную информацию по итогу.

    429 Too Many Requests

    Слишком много запросов — отправлено слишком много запросов за короткое время. Это может указывать, например, на попытку DDoS‑атаки, для защиты от которой запросы блокируются.

    431 Request Header Fields Too Large

    Превышена длина заголовков — сервер может и не отвечать этим кодом, вместо этого он может просто сбросить соединение.

    Исправляется это с помощью сокращения заголовков и повторной отправки запроса.

    434 Requested Host Unavailable

    Адрес запрашиваемой страницы недоступен.

    444 No Response

    Нет ответа — код отображается в лог‑файлах, чтобы подтвердить, что сервер никак не отреагировал на запрос пользователя и прервал соединение. Возвращается только сервером nginx.

    Nginx — программное обеспечение с открытым исходным кодом. Его используют для создания веб‑серверов, а также  в качестве почтового или обратного прокси‑сервера. Nginx решает проблему падения производительности из‑за роста трафика. 

    449 Retry With

    Повторите попытку — ошибка говорит о необходимости скорректировать запрос и повторить его снова. Причиной становятся неверно указанные параметры (возможно, недостаточно данных).

    450 Blocked by Windows Parental Controls

    Заблокировано родительским контролем — говорит о том, что с компьютера попытались зайти на заблокированный ресурс. Избежать этой ошибки можно изменением параметров системы родительского контроля.

    451 Unavailable For Legal Reasons

    Недоступно по юридическим причинам — доступ к ресурсу закрыт, например, по требованию органов государственной власти или по требованию правообладателя в случае нарушения авторских прав. 

    456 Unrecoverable Error

    Неустранимая ошибка — при обработке запроса возникла ошибка, которая вызывает некорректируемые сбои в таблицах баз данных.

    499 Client Closed Request

    Запрос закрыт клиентом — нестандартный код, используемый nginx в ситуациях, когда клиент закрыл соединение, пока nginx обрабатывал запрос.

    5* класс кодов (ошибки на стороне сервера)

    Эти коды указывают на ошибки со стороны серверов. 

    При использовании всех методов, кроме HEAD, сервер должен вернуть в теле сообщения гипертекстовое пояснение для пользователя. И его можно использовать в работе.

    Изображение страницы с ошибкой сайта REG.RU

    Изображение страницы с ошибкой сайта REG.RU

    500 Internal Server Error

    Внутренняя ошибка сервера — сервер столкнулся с неким условием, из‑за которого не может выполнить запрос. 

    Проверяйте, корректно ли указаны директивы в системных файлах (особенно htaccess) и нет ли ошибки прав доступа к файлам. Обратите внимание на ошибки внутри скриптов и их медленную работу.

    501 Not Implemented

    Не выполнено —  код отдается, когда сам сервер не может идентифицировать метод запроса. 

    Сами вы эту ошибку не исправите. Устранить её может только сервер.

    502 Bad Gateway

    Ошибка шлюза — появляется, когда сервер, выступая в роли шлюза или прокси‑сервера, получил ответное сообщение от вышестоящего сервера о несоответствии протоколов.

    Актуально исключительно для прокси и шлюзовых конфигураций.

    503 Service Unavailable

    Временно не доступен — сервер временно не имеет возможности обрабатывать запросы по техническим причинам (обслуживание, перегрузка и прочее). 

    В поле Retry‑After заголовка сервер укажет время, через которое  можно повторить запрос.

    504 Gateway Timeout

    Тайм‑аут шлюза —  сервер, выступая в роли шлюза или прокси‑сервера, не получил ответа от вышестоящего сервера в нужное время.

    Исправить эту ошибку самостоятельно не получится. Здесь дело в прокси, часто — в веб‑сервере. 

    Первым делом просто обновите веб‑страницу. Если это не помогло, нужно почистить DNS‑кэш. Для этого  нажмите горячие клавиши Windows+R и введите команду cmd (Control+пробел). В открывшемся окне укажите команду ipconfig / flushdns и подтвердите её нажатием Enter.

    505 HTTP Version Not Supported

    Сервер не поддерживает версию протокола — отсутствует поддержка текущей версии HTTP‑протокола. Нужно обеспечить клиента и сервер одинаковой версией.

    506 Variant Also Negotiates

    Неуспешные переговоры — с такой ошибкой сталкиваются, если сервер изначально настроен неправильно. По причине ошибочной конфигурации выбранный вариант указывает сам на себя, из‑за чего процесс и прерывается.

    507 Insufficient Storage

    Не хватает места для хранения — серверу недостаточно места в хранилище. Нужно либо расчистить место, либо увеличить доступное пространство.

    508 Loop Detected

    Обнаружен цикл — ошибка означает провал запроса и выполняемой операции в целом.

    509 Bandwidth Limit Exceeded

    Превышена пропускная способность —  используется при чрезмерном потреблении трафика. Владельцу площадки следует обратиться к своему хостинг‑провайдеру. 

    510 Not Extended

    Не продлён — ошибка говорит, что на сервере отсутствует нужное для клиента расширение. Чтобы исправить проблему, надо убрать часть неподдерживаемого расширения из запроса или добавить поддержку на сервер.

    511 Network Authentication Required

    Требуется аутентификация — ошибка генерируется сервером‑посредником, к примеру, сервером интернет‑провайдера, если нужно ввести пароль для получения доступа к сети через платную точку доступа.



    Что это?
    Ошибка 500 – это то, что препятствует открытию той или иной страницы сайта. Вместо ожидаемой, например, статьи, перед пользователем возникает фраза Internal Server Error 500. Она сообщает о проблемах ресурса с подключением к серверу.



    Как исправить?
    Устранить ошибку можно как со стороны пользователя сайта, так и его владельца. В первом случае способы не гарантируют на 100 %, что Error 500 моментально пропадает, но попробовать стоит. Больше возможностей в этом плане у собственника ресурса.

    В статье рассказывается:

    1. Что значит код ошибки 500
    2. Основные причины возникновения ошибки 500
    3. Текст и внешний вид ошибки
    4. Советы по исправлению ошибки 500 для пользователя
    5. Рекомендации по исправлению ошибки 500 для владельца сайта
    6. Пройди тест и узнай, какая сфера тебе подходит:
      айти, дизайн или маркетинг.

      Бесплатно от Geekbrains

    Значение 500 является кодом положения протокола НТТР. Из-за чего появляется ошибка 500? Происходит это потому, что случилась неисправность конфигурации сервера или пришёл сигнал о том, что компонент отказал. Когда возникает эта ошибка, программное обеспечение продолжает работать, но из-за серьёзных внутренних нарушений запросы обрабатываются некорректно.

    Ошибка 500 значит, что пользовательский запрос неправильно переводится в действие. По этой причине возникают проблемы во время работы с сайтом. Нужно как можно скорее понять, из-за чего именно появилась ошибка, и устранить её.

    Что значит код ошибки 500

    Что значит код ошибки 500

    Оповещение о том, что произошла ошибка 500, имеет текстовое описание. Наиболее частые варианты:

    • Ошибка 500.
    • Внутренняя ошибка сервера 500.
    • Ошибка 500 Internal Server Error.
    • Временная ошибка (500).
    • Внутренняя ошибка сервера.
    • 500 ошибка сервера.
    • Внутренняя ошибка HTTP 500.
    • Произошла непредвиденная ошибка.
    • HTTP status 500 internal server error (перевод ― HTTP статус 500 внутренняя ошибка сервера).

    Скачать файл

    Визуальный вид и текстовое сопровождение ошибки могут отличаться у каждого пользователя, потому что версии страницы могут быть разными.

    Вероятность столкнуться с такой неприятностью есть при работе с любым веб-ресурсом, браузером или устройством. Главное, понимать, что эта ошибка, как и другие, которые начинаются на цифру 5, является промахом разработчиков или администратора сайта и вашей вины в этом нет.

    Основные причины возникновения ошибки 500

    Мы уже выяснили, что данная ошибка появляется, когда сервер не смог обработать запрос, совершённый пользователем, в результате чего человек не может открыть ресурс, а поисковые системы с ним взаимодействовать. Проблему обязательно нужно устранить, но для начала следует найти причину её появления, среди которых может быть:

    • Неправильный синтаксис файла .htaccess – это файл, в котором можно менять настройки при работе с веб-сервером Apache и корректировать его функционирование (управлять различными перенаправлениями, правами доступа к данным, опциями PHP, задавать собственные страницы ошибок и прочее).

    Основные причины возникновения ошибки 500

    Основные причины возникновения ошибки 500
    • Неполадки в сценариях сайта, которые отвечают за дополнительные возможности и визуальные эффекты.
    • Недостаточно оперативной памяти, чтобы выполнить скрипт.
    • Ошибки в коде CMS, системы управления наполнением ресурса. В большинстве случаев (80 %) причиной являются конфликтующие плагины.

    Текст и внешний вид ошибки

    Вы узнали, что означает ошибка 500, теперь пришло время перейти к более подробному разбору возможных причин её появления. Иногда разобраться с этим вопросом можно и без помощи специалиста.

    Вид ошибки может отличаться. Это зависит от того, из-за чего она возникла. Наиболее распространенные причины можно узнать по тому, как отображается ошибка и какой текст её сопровождает.

    Internal Server Error

    Данный вид ошибки – сигнал о том, что есть проблемы с файлом .htaccess (к примеру, он был неправильно настроен). Чтобы понять, действительно ли дело в .htaccess, добавьте к его названию в конце цифру один. Сделать это поможет FTP-клиент (например, FileZilla) или файловый менеджер на вашем хостинге (в Timeweb есть подобный, и он очень простой в использовании). После этой манипуляции попробуйте заново открыть сайт. Если ошибка не выскочила, значит, вы нашли, из-за чего она появилась.

    pdf иконка

    Топ-30 самых востребованных и высокооплачиваемых профессий 2022

    Поможет разобраться в актуальной ситуации на рынке труда

    doc иконка

    Подборка 50+ ресурсов об IT-сфере

    Только лучшие телеграм-каналы, каналы Youtube, подкасты, форумы и многое другое для того, чтобы узнавать новое про IT

    pdf иконка

    ТОП 50+ сервисов и приложений от Geekbrains

    Безопасные и надежные программы для работы в наши дни

    Уже скачали 18548
    pdf иконка

    HTTP ERROR 500 или пустая страница

    Подобное означает, что причина в сценариях сайта. Но надо уточнить насчёт пустой страницы, что это не только признак внутренней ошибки 500 в сервере.

    Предлагаем детальнее разобраться с пустой страницей, обращаясь к инструментам разработчика. Через браузерную панель пользователь получает уведомления об ошибках и другую информацию (время запуска сайта, html-элементы и прочее).

    Каким образом открывается панель разработчика? Для начала нажмите F12 (это подходит для большинства браузеров на Windows). Если вы пользуетесь Google Chrome на macOS, то вам нужно использовать сочетание кнопок Cmd+Opt+J. В случае Safari на macOS нужна комбинация Cmd+Opt+C, но перед тем, как её нажать, включите «Меню разработки» в разделе «Настройки» -> «Продвинутые».

    Есть ещё один способ открыть панель разработчика: кликнуть правой кнопкой мыши в любом месте сайта и в открывшемся контекстном меню выбрать «Посмотреть код». После этого откройте вкладку «Сеть» (или Network) и посмотрите, какое значение указано в строке «Статус». Если дело в ошибке 500, то будет стоять эта цифра.

    Советы по исправлению ошибки 500 для пользователя

    Для начала расскажем, на что лучше не тратить своё время. Данная ошибка связана с сервером, поэтому делать что-то со стороны клиента (перезагружать роутер, менять браузер, переустанавливать программу) смысла нет.

    • Заново откройте сайт

    Ошибка 500 может появиться не только из-за серьёзных проблем с сервером, но и по причине временной перегрузки сайта. Перезагрузить страницу можно с помощью клавиш: на ПК — F5, ноутбуке — Fn + F5, на устройствах от Apple — Cmd + R.

    Ошибка 400: причины и способы устранения

    Читайте также

    • Очистите кэш и cookies браузера

    Кэш и cookies нужны для того, чтобы при повторном открытии страницы не нужно было заново прогружать все данные, то есть они сохраняют информацию с первого посещения, за счёт чего в следующий раз сайт открывается быстрее.

    Советы по исправлению ошибки 500 для пользователя

    Советы по исправлению ошибки 500 для пользователя

    Если на сервере была ошибка, то даже если её уже устранили, из-за кэша может открываться старая версия страницы с этой неполадкой.

    Если ничего из этого вам не помогло, то остаётся ждать, когда владелец решит эту проблему, и вернуться на сайт позже.

    • Обратитесь к владельцу сайта

    Когда, например, в интернет-магазине часто всплывает ошибка 500, можно связаться с его владельцем. Информация с контактными данными, как правило, находится либо внизу страницы, либо в разделе «Контакты».

    Чаще всего информация закрытая, но есть форма для обратной связи. Однако не факт, что вы получите ответ. Если нужные данные вы не нашли или ответа так и нет, можно воспользоваться такими вариантами: через Whois, хостинг-провайдера или регистратора домена, с помощью сторонних сервисов.

    Рекомендации по исправлению ошибки 500 для владельца сайта

    Стоит учитывать большое количество факторов: движок, на котором работает ваш сайт, на каком он хостинге расположен, какие недавние изменения были внесены. Как бы там ни было, зачастую универсальные методы убирают ошибку 500. Желательно попробовать все варианты, которые подойдут под специфику вашего ресурса.

    • Устраните неполадки в синтаксисе файла .htaccess

    Выше мы уже рассказывали, как понять, в нём ошибка или нет. Попробуйте изменить имя документа, к примеру, на .htaccess_, и заново открыть сайт. Если ошибка не вылезла, значит, дело всё-таки в .htaccess. Проанализируйте синтаксис документа на наличие лишних символов или опечаток. Если вы сохраняли прошлую версию настроек, то надо попробовать её вернуть, чтобы проверить, будет ли ошибка.

    В некоторых случаях может помочь закомментирование строки Options в .htaccess – вставить # в её начале. Если ничего не поменялось, проделайте то же самое с другими строками, а потом по очереди убирайте # и смотрите на результат.

    После изменения файла .htaccess надо проверить, сохранилось ли оно. Иногда хостер может выставить на документ права, которые мешают его менять. В этой ситуации вы можете скачать файл .htaccess к себе на устройство, открыть и отредактировать его в любом текстовом документе и залить обратно, заменив старую версию.

    pdf иконка

    Точный инструмент «Колесо компетенций»

    Для детального самоанализа по выбору IT-профессии

    pdf иконка

    Список грубых ошибок в IT, из-за которых сразу увольняют

    Об этом мало кто рассказывает, но это должен знать каждый

    doc иконка

    Мини-тест из 11 вопросов от нашего личного психолога

    Вы сразу поймете, что в данный момент тормозит ваш успех

    Регистрируйтесь на бесплатный интенсив, чтобы за 3 часа начать разбираться в IT лучше 90% новичков.

    Только до 2 февраля

    Осталось 17 мест

    • Обновите РНР

    Версии РНР, которые уже устарели, не поддерживают обновления безопасности, хуже работают и из-за них может быть некорректная работа плагинов и сценариев.

    Обновите РНР

    Обновите РНР

    Может, для того, чтобы ваш сайт работал без перебоев, вам надо просто обновить РНР.

    • Настройте права для CGL-скриптов

    Одним из методов устранения ошибки 500 на сайте является выставление прав для CGL-скриптов. Если такие сценарии у вас есть, то их папки и файлы должны иметь такое право доступа: 0755 (drwxr-xr-x), которое даёт возможность менять их только владельцу, а остальные могут их лишь открывать и активировать. Когда на скриптах стоит другое право доступа, это может привести к появлению ошибки 500.

    • Проверьте файлы CGL-скриптов

    У правильных сценариев окончание строк в формате Unix (n), а не Windows (rn). Для сохранения корректного варианта нужно загружать код (в большинстве хостингов) по FTP в режиме ASCII. Если вы не помните, какие ранее были настройки, заново добавьте сценарии и посмотрите, появится или нет ошибка 500. К тому же CGL-скрипты могут быть причиной неправильных HTTP‑заголовков ответа. В данном варианте вы сможете заметить ошибку в логах.

    • Проверьте плагины

    Причина может скрываться в плагинах, которые вы недавно установили.

    Проверьте плагины

    Проверьте плагины

    Нередко встречается такое, что отдельные элементы сайта или плагины не могут работать совместно друг с другом. Данная проблема становится причиной не только того, что сайт выдаёт ошибку 500, но и возникновения других неполадок на сервере. Если модели были установлены или обновлены не так давно, то можно попробовать их отключить через панель администратора. Есть вероятность, что после этого могут всплыть другие неполадки, но если ошибка 500 исчезла, значит, дело было в конфликте плагинов или компонентов.

    • Проверьте лог ошибок

    Более точный анализ проводится с помощью логов. Если объяснять простым языком, то лог – это своеобразный журнал, в котором хранится информация об ошибках, направленных запросах, подключениях, действий с документами и так далее. Так как данных в логах очень много, они делятся на категории, чтобы было проще найти то, что нужно.

    Если в последнее время вы как-то меняли сайт, то это могло стать причиной появления ошибки с кодом состояния 500. Зайдите в логи и проверьте, нет ли там информации о проблемах. Если ошибки высветились, то надо их изучить и отменить последние изменения.

    Как правило, хостеры предоставляют информацию о том, где найти логи и как их открыть с панели управления. Данные об этом есть в разделе помощи FAQ (frequently asked questions — часто задаваемые вопросы) на сайте хостинга.

    • Оптимизируйте сценарии

    Если написанные сценарии долго грузятся или вообще не могут запуститься из-за нехватки ресурсов, проанализируйте их содержимое. Может, код надо оптимизировать, чтобы он стал легче и быстрее загружался. Нередко сценариям недостаточно ресурсов при работе с виртуальным хостингом. У них есть жёсткий лимит на память, чтобы каждый пользователь имел равные возможности во время пребывания на выбранном сайте.

    Разделите скрипты на части и проверьте каждый на эффективность их деятельности. Если вы обнаружили в коде много ненужных вызовов либо необходимый объём памяти постоянно растёт, нужно обязательно проработать эти моменты.

    • Увеличьте объём оперативной памяти сервера

    Встречаются ситуации, когда даже после оптимизации сценариев они продолжают занимать много памяти. Чтобы решить эту проблему, придётся начать пользоваться более дорогим пакетом обслуживания, который предлагает хостинг.

    Объём оперативной памяти сервера

    Объём оперативной памяти сервера

    Либо, если есть вариант увеличить объём памяти, прибегнуть к нему. К тому же вы не будете платить за те функции, которые не нужны вашему ресурсу.

    Если вы испробовали все возможные варианты, но ничего не помогло, лучше обратиться за помощью к службе технической поддержки. Укажите время, когда вылезла ошибка, и подробно расскажите, что пытались предпринять для её устранения. Специалисты подробно изучат настройки сайта и, если потребуется, обратятся к управляющим сервера на стороне хостинг-провайдера.

    Что такое скрипт: применение, языки написания

    Читайте также

    Ошибка выполнения запроса 500 является обобщенным кодом состояния НТТР, который говорит о том, что на сервере произошла какая-то неполадка, но более точно описать проблему сервер не может. Так что первым делом нужно узнать, что послужило причиной возникновения ошибки, и только после этого заниматься её устранением.

    В статье мы расскажем, как исправить ошибку (код состояния) 500 со стороны пользователя и администратора сайта, а также подробно разберём, что такое ошибка запроса 500.

    Что такое внутренняя ошибка сервера 500

    Код ошибки 5хх говорит о том, что браузер отправил запрос корректно, но сервер не смог его обработать. Что значит ошибка 500? Это проблема сервера, причину которой он не может распознать.

    Сообщение об ошибке сопровождается описанием. Самые популярные варианты:

    • Внутренняя ошибка сервера 500,
    • Ошибка 500 Internal Server Error,
    • Временная ошибка (500),
    • Внутренняя ошибка сервера,
    • 500 ошибка сервера,
    • Внутренняя ошибка HTTP 500,
    • Произошла непредвиденная ошибка,
    • Ошибка 500,
    • HTTP status 500 internal server error (перевод ― HTTP статус 500 внутренняя ошибка сервера).

    Дизайн и описание ошибки 500 может быть любым, так как каждый владелец сайта может создать свою версию страницы. Например, так выглядит страница с ошибкой на REG.RU:

    Как ошибка 500 влияет на SEO-продвижение

    Для продвижения сайта в поисковых системах используются поисковые роботы. Они сканируют страницы сайта, проверяя их доступность. Если страница работает корректно, роботы анализируют её содержимое. После этого формируются поисковые запросы, по которым можно найти ресурс в поиске.

    Когда поисковый робот сканирует страницу с ошибкой 500, он не изменяет её статус в течение суток. В течение этого времени администратор может исправить ошибку. Если робот перейдёт на страницу и снова столкнётся с ошибкой, он исключит эту страницу из поисковой выдачи.

    Проверить, осталась ли страница на прежних позициях, можно с помощью Google Search Console. Если робот исключил страницу из поисковой выдачи, её можно добавить снова.

    Код ошибки 500: причины

    Если сервер вернул ошибку 500, это могло случиться из-за настроек на web-хостинге или проблем с кодом сайта. Самые распространённые причины:

    • ошибки в файле .htaccess,
    • неподходящая версия PHP,
    • некорректные права на файлы и каталоги,
    • большое количество запущенных процессов,
    • большие скрипты,
    • несовместимые или устаревшие плагины.

    Решить проблему с сервером можно только на стороне владельца веб-ресурса. Однако пользователь тоже может выполнить несколько действий, чтобы продолжить работу на сайте.

    Что делать, если вы пользователь

    Если на определённом ресурсе часто возникает ошибка 500, вы можете связаться с владельцем сайта по инструкции.

    Перезагрузите страницу

    Удаленный сервер возвращает ошибку не только из-за серьёзных проблем на сервере. Иногда 500 ошибка сервера может быть вызвана небольшими перегрузками сайта.

    Чтобы устранить ошибку, перезагрузите страницу с помощью сочетания клавиш:

    • на ПК — F5,
    • на ноутбуке — Fn + F5,
    • на устройствах от Apple — Cmd + R.

    Обратите внимание! Если вы приобретаете товары в интернет-магазине и при оформлении заказа появляется 500 Internal Server Error (перевод — внутренняя ошибка сервера), при перезагрузке страницы может создаться несколько заказов. Поэтому сначала проверьте, оформился ли ваш предыдущий заказ. Если нет, попробуйте оформить заказ заново.

    Очистите кэш и cookies браузера

    Кэш и cookies сохраняют данные посещаемых сайтов и данные аутентификаций, чтобы в будущем загружать веб-ресурсы быстрее. Если на ресурсе уже был статус ошибки 500, при повторном входе на сайт может загружаться старая версия страницы с ошибкой из кэша, хотя на самом деле страница уже работает. Очистить кэш и куки браузера вам поможет инструкция.

    Если ни одно из этих действий не решило проблему, значит, некорректно работает сам сервер сайта. Вернитесь на страницу позже, как только владелец решит проблему.

    Что делать, если вы владелец сайта

    В большинстве случаев устранить проблему может только владелец сайта. Как правило, ошибка связана с проблемами в коде. Реже проблемы могут быть на физическом сервере хостинг-провайдера.

    Ниже рассмотрим самые популярные причины и способы решения.

    Ошибки в файле .htaccess

    Неверные правила в файле .htaccess — частая причина возникновения ошибки. Чтобы это проверить, найдите .htaccess в файлах сайта и переименуйте его (например, в test). Так директивы, прописанные в файле, не повлияют на работу сервера. Если сайт заработал, переименуйте файл обратно в .htaccess и найдите ошибку в директивах. Если вы самостоятельно вносили изменения в .htaccess, закомментируйте новые строки и проверьте доступность сайта.Также может помочь замена текущего файла .htaccess на стандартный в зависимости от CMS.

    Найти директиву с ошибкой можно с помощью онлайн-тестировщика. Введите содержимое .htaccess и ссылку на сайт, начиная с https://. Затем нажмите Test:

    Произошла непредвиденная ошибка

    На экране появится отчёт. Если в .htaccess есть ошибки, они будут выделены красным цветом:

    500 ошибка nginx

    Активирована устаревшая версия PHP

    Устаревшие версии PHP не получают обновления безопасности, работают медленнее и могут вызывать проблемы с плагинами и скриптами. Возможно, для работы вашего веб-ресурса нужна более новая версия PHP. Попробуйте сменить версию PHP на другую по инструкции.

    Установлены некорректные права на файлы и каталоги сайта

    В большинстве случаев корректными правами для каталогов являются «755», для файлов — «644». Проверьте, правильно ли они установлены, и при необходимости измените права на файлы и папки.

    Запущено максимальное количество процессов

    На тарифах виртуального хостинга REG.RU установлены ограничения на количество одновременно запущенных процессов. Например, на тарифах линейки «Эконом» установлено ограничение в 18 одновременно запущенных процессов, на тарифах «+Мощность» ― 48 процессов. Если лимит превышен, новый процесс не запускается и возникает системная ошибка 500.

    Такое большое число одновременных процессов может складываться из CRON-заданий, частых подключений с помощью почтовых клиентов по протоколу IMAP, подключения по FTP или других процессов.

    Чтобы проверить количество процессов, подключитесь по SSH. Выполните команду:

    ps aux | grep [u]1234567 |wc -l

    Вместо u1234567 укажите ваш логин хостинга: Как узнать логин хостинга.

    Чтобы посмотреть, какие процессы запущены, введите команду:

    Вместо u1234567 укажите логин услуги хостинга.

    Командная строка отобразит запущенные процессы:

    Код ошибки 500

    Где:

    • u1234567 — логин услуги хостинга,
    • 40522 — PID процесса,
    • S — приоритет процесса,
    • /usr/libexec/sftp-server — название процесса.

    Процесс можно завершить командой kill, например:

    Вместо 40522 укажите PID процесса.

    Чтобы решить проблему, вы также можете:

    • увеличить интервал запуска заданий CRON,
    • ограничить количество IMAP-соединений в настройках почтового клиента. Подробнее в статье Ограничение IMAP-соединений,
    • проанализировать запущенные процессы самостоятельно или обратившись за помощью к разработчикам сайта.

    Если вам не удалось самостоятельно устранить ошибку 500, обратитесь в техподдержку.

    Скрипты работают слишком медленно

    На каждом виртуальном хостинге есть ограничения на время выполнения скрипта. Если за установленное время скрипт не успевает выполниться, возникает ошибка сервера 500. Для решения проблемы обратитесь к разработчику сайта и оптимизируйте скрипты. Если оптимизировать нельзя, перейдите на более мощный вид сервера.

    У пользователей VPS есть возможность увеличить максимальное использование оперативной памяти на процесс, но лучше делать скрипты меньшего размера.

    Ошибка 500 на сайте, созданном на WordPress

    WordPress предлагает много плагинов для создания хорошего сайта. Они значительно расширяют возможности CMS. Однако они же могут нарушать работу сайта и вызывать ошибку 500. Вызвать ошибку могут как недавно установленные плагины, так и старые.

    Для начала проверьте, нужно ли обновить плагины. Часто устаревшие плагины перестают работать и вызывают проблемы работы сайта. Если все плагины обновлены, но 500 Internal Server Error остаётся, отключите все плагины, чтобы убедиться, что именно они мешают работе сайта. Как только станет понятно, что виноват один из плагинов, отключайте их по очереди, пока не найдёте тот, который нарушает работу сервера.


    Как отключить плагин в WordPress

    1. 1.
    2. 2.

      Перейдите во вкладку «Плагины» ― «Установленные».

    3. 3.

      Нажмите Деактивировать у плагина, который, как вам кажется, повлиял на работу сайта:

    Если все ваши действия не решили проблему или вы не уверены в своих технических знаниях, обратитесь к службе технической поддержки. Сообщите время обнаружения проблемы и опишите все действия, которые вы предприняли перед обращением. Специалисты сделают детальную проверку настроек вашего сайта и при необходимости обратятся к администраторам сервера на стороне хостинг-провайдера.

    • Partition Wizard
    • Partition Manager
    • 4 Ways to Fix «Server Error in ‘/’ Application»

    4 Ways to Fix «Server Error in ‘/’ Application» [Partition Manager]

    By Linda | Follow |
    Last Updated December 28, 2022

    Have you encountered «Server Error in ‘/’ Application«? The causes of the error may be various. In this post, MiniTool Partition Wizard lists some common reasons of this error and offers you corresponding solutions.

    «Server error in ‘/’ application» issue is an application error on the server that prevents the website from running. And this error is usually related to IIS and ASP.NET.

    • IIS (Internet Information Services): It is an extensible web server service created by Microsoft for use with the Windows NT family. It is a kind of web server. Once a website is created, it must have a web server. Thus, others can browse your website.
    • NET: It is a category library provided by Microsoft in the .NET Framework for developing Web applications. It can run on the IIS server with .NET Framework installed, and use HTML, CSS, JavaScript and server scripts to create web pages and websites.

    «Server error in ‘/’ application» issue may be caused by various reasons. Some of the most common reasons include:

    • IIS has some problems and needs to be restarted.
    • It’s just a 404 error. The resource you are looking for is missing or has been renamed.
    • You are accessing a file with a file extension that does not have permissions to be run on the server
    • You are using a version of .NET Framework incompatible with some programs, features, and file types.

    If you don’t know what causes your «Server error in ‘/’ application», please check the error description on the error page.

    [Solved] 9anime Server Error, Please Try Again on Windows

    How to Fix «Server Error in ‘/’ Application»

    To fix the «server error in ‘/’ application», you can use the following methods.

    Fix 1. Restart IIS

    • Click the Start button in the lower left-hand corner and then choose Administrative Tools
    • Click Internet Information Services (IIS) Managerto launch it.
    • In the IIS manager, select the server in the left-hand window pane and then click Restart on the left-hand side.

    Fix 2. Update the URL

    If the «server error in ‘/’ application» is a 404 error, you just need to correct the URL in the link that triggers this error.

    Search Google or Type a URL, What Is It & Which to Choose?

    Fix 3. Add the MIME Type

    If a file does not have permissions to be run on the server, you should first check if you are calling the correct file name. For example, is there a typo in the file extension? If the file name is correct, then you may need to add the MIME type of the file extension to the server.

    If don’t know the MIME Type of a file extension, you can search it online. Then, you can add the MIME type in the IIS Manager through the following steps:

    • Open the IIS Manager
    • In the left-hand window panel, expand your server > Sites > Default Web Site.
    • In the central pane, double-click MIME Types.
    • Under the Actions column on the right, click .. button. This will open a window.
    • In the pop-up window, fill in the File name extensionand MIME Type, and then click OK.

    Fix 4. Verify the .NET Version

    • Open IIS Manager
    • Expand the server in the left-hand window panel and choose Application Pools.
    • Right-click on an app and choose Basic Settings…
    • In the pop-up window, select the .NET version from the drop-down menu, and then click OKto confirm your choice.

    Top 5 Ways to Fix .NET Framework 3.5 Missing in Windows 10

    About The Author

    Linda

    Position: Columnist

    Author Linda has been working as an editor at MiniTool for 1 year. As a fresh man in IT field, she is curious about computer knowledge and learns it crazily. Maybe due to this point, her articles are simple and easy to understand. Even people who do not understand computer can gain something.

    By the way, her special focuses are data recovery, partition management, disk clone, and OS migration.

    • Partition Wizard
    • Partition Manager
    • 4 Ways to Fix «Server Error in ‘/’ Application»

    4 Ways to Fix «Server Error in ‘/’ Application» [Partition Manager]

    By Linda | Follow |
    Last Updated December 28, 2022

    Have you encountered «Server Error in ‘/’ Application«? The causes of the error may be various. In this post, MiniTool Partition Wizard lists some common reasons of this error and offers you corresponding solutions.

    «Server error in ‘/’ application» issue is an application error on the server that prevents the website from running. And this error is usually related to IIS and ASP.NET.

    • IIS (Internet Information Services): It is an extensible web server service created by Microsoft for use with the Windows NT family. It is a kind of web server. Once a website is created, it must have a web server. Thus, others can browse your website.
    • NET: It is a category library provided by Microsoft in the .NET Framework for developing Web applications. It can run on the IIS server with .NET Framework installed, and use HTML, CSS, JavaScript and server scripts to create web pages and websites.

    «Server error in ‘/’ application» issue may be caused by various reasons. Some of the most common reasons include:

    • IIS has some problems and needs to be restarted.
    • It’s just a 404 error. The resource you are looking for is missing or has been renamed.
    • You are accessing a file with a file extension that does not have permissions to be run on the server
    • You are using a version of .NET Framework incompatible with some programs, features, and file types.

    If you don’t know what causes your «Server error in ‘/’ application», please check the error description on the error page.

    [Solved] 9anime Server Error, Please Try Again on Windows

    How to Fix «Server Error in ‘/’ Application»

    To fix the «server error in ‘/’ application», you can use the following methods.

    Fix 1. Restart IIS

    • Click the Start button in the lower left-hand corner and then choose Administrative Tools
    • Click Internet Information Services (IIS) Managerto launch it.
    • In the IIS manager, select the server in the left-hand window pane and then click Restart on the left-hand side.

    Fix 2. Update the URL

    If the «server error in ‘/’ application» is a 404 error, you just need to correct the URL in the link that triggers this error.

    Search Google or Type a URL, What Is It & Which to Choose?

    Fix 3. Add the MIME Type

    If a file does not have permissions to be run on the server, you should first check if you are calling the correct file name. For example, is there a typo in the file extension? If the file name is correct, then you may need to add the MIME type of the file extension to the server.

    If don’t know the MIME Type of a file extension, you can search it online. Then, you can add the MIME type in the IIS Manager through the following steps:

    • Open the IIS Manager
    • In the left-hand window panel, expand your server > Sites > Default Web Site.
    • In the central pane, double-click MIME Types.
    • Under the Actions column on the right, click .. button. This will open a window.
    • In the pop-up window, fill in the File name extensionand MIME Type, and then click OK.

    Fix 4. Verify the .NET Version

    • Open IIS Manager
    • Expand the server in the left-hand window panel and choose Application Pools.
    • Right-click on an app and choose Basic Settings…
    • In the pop-up window, select the .NET version from the drop-down menu, and then click OKto confirm your choice.

    Top 5 Ways to Fix .NET Framework 3.5 Missing in Windows 10

    About The Author

    Linda

    Position: Columnist

    Author Linda has been working as an editor at MiniTool for 1 year. As a fresh man in IT field, she is curious about computer knowledge and learns it crazily. Maybe due to this point, her articles are simple and easy to understand. Even people who do not understand computer can gain something.

    By the way, her special focuses are data recovery, partition management, disk clone, and OS migration.

    I am new to JavaScript and i am trying to send api request from JavaScript.

    I am getting below error while calling external endpoint from JavaScript.

    from origin ‘null’ has been blocked by CORS policy: Request header field x-api-key is not allowed by Access-Control-Allow-Headers in preflight response.

    var url = "<external_api_for_graphQl"
    var api_key = "<api_key>"
    
    var xhr = new XMLHttpRequest();
    
    xhr.open("POST", url, false);
    xhr.setRequestHeader("x-api-key", api_key);
    
    
    xhr.send("");
    alert(xhr.status);
    

    any idea how we can resolve this?
    Thanks

    Ravi Makwana's user avatar

    Ravi Makwana

    2,7501 gold badge28 silver badges40 bronze badges

    asked Dec 25, 2019 at 5:08

    aditya's user avatar

    1

    try to set header

    xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
    xhr.setRequestHeader("Access-Control-Allow-Credentials", "true");
    xhr.setRequestHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
    xhr.setRequestHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
    

    answered Dec 25, 2019 at 5:31

    Ravi Makwana's user avatar

    Ravi MakwanaRavi Makwana

    2,7501 gold badge28 silver badges40 bronze badges

    1

    The Access-Control-Allow-Headers header is sent by the server to let the client know which headers it supports for CORS requests. The value of Access-Control-Allow-Headers should be a comma-delineated list of header names, such as "X-Custom-Information" or any of the standard but non-basic header names (which are always allowed).

    This error occurs when attempting to preflight a header that is not expressly allowed (that is, it’s not included in the list specified by the Access-Control-Allow-Headers header sent by the server). To fix this, the server needs to be updated so that it allows the indicated header, or you need to avoid using that header.

    one think you can try is this:

    $.ajax({
            headers: { "Accept": "application/json", "x-api-key":"<x-api-key>"},
            type: 'POST',
            url: '<external_api_for_graphQl>',
            crossDomain: true,
            beforeSend: function(xhr){
                xhr.withCredentials = true;
          },
            success: function(data, textStatus, request){
                console.log(data);
            }
    

    });

    answered Dec 25, 2019 at 5:35

    Braj Ankit's user avatar

    Braj AnkitBraj Ankit

    3331 gold badge2 silver badges19 bronze badges

    Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове конструктора сомобъект invalid class string
  • Ошибка при вызове pkcs7расшифровать объект или свойство не найдено
  • Ошибка при вызове конструктора сомобъект 2147467262
  • Ошибка при вызове pkcs7расшифровать менеджера криптографии 1с
  • Ошибка при вызове конструктора сомобъект 2147221164