2017-03-29 1 views
0

Ich versuche, ein Rest api Anfrage realla https://realla.co/api/#/ von localhost zu machen, ich einen API-Schlüssel haben und die Anforderung über PHP machen können, aber haben ein Problem mit Ajax:jQuery/Ajax Erholung api Anfrage

var URL = "https://realla.co/api/v1/listings/search"; 
var usr = 'api'; 
var psw = 'hidden'; 
$.ajax({ 
    type: "POST", 
    dataType: "json", 
    contentType: "application/json", 
    url: URL, 
    crossDomain: true, 
    beforeSend: function(xhr) { 
    xhr.setRequestHeader("Authorization", "Basic " + btoa(usr + ":" + psw)) 
    }, 
    success: function(result) { 
    console.log('success'); 
    }, 
    error: function(req, status, err) { 
    console.log('Something went wrong', status, err); 
    } 
}); 

Gibt die Fehler

XMLHttpRequest cannot load https://realla.co/api/v1/listings/search. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://dw.dev' is therefore not allowed access. The response had HTTP status code 403. 

ich habe versucht, das Problem mit https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en zu beheben, aber immer noch die gleiche Meldung.

Ich habe die folgende Funktion (Laufwordpress) hinzugefügt:

/* 
* Modify HTTP header 
*/ 
function new_headers($headers) { 

    if (!is_admin()) { 
     $headers['Access-Control-Allow-Origin'] = '*'; 
     $headers['Access-Control-Allow-Methods'] = 'GET, POST, PATCH, PUT, DELETE, OPTIONS'; 
     $headers['Access-Control-Allow-Headers'] = 'Origin, Content-Type, X-Auth-Token'; 

    } 

    return $headers;  
} 
add_filter('wp_headers', 'new_headers'); 

ich andere APIs versucht haben (Facebook) und das funktioniert, aber ich frage mich, ob ich etwas damit fehlt.

Die Dokumentation für Realla ist ziemlich dünn, aber ich frage mich, ob ich etwas falsch mache.

Dank

+0

Fügen Sie 'Access-Control-Allow-Origin' hinzu: * in Ihrem Backend-Code. – Subhajit

Antwort

0

lassen Sie uns dies versuchen

wird es

Add-Header in angeforderte Ressource-Datei

<?php 

    header('Access-Control-Allow-Origin: *'); 
    header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS'); 
    header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token'); 
?> 
+0

Versucht dies, aber immer noch die gleiche Nachricht (Ich habe den Code meiner ursprünglichen Frage zur Klarheit hinzugefügt). – epluribusunum

0

Ausgabe arbeiten Seite realla gehörte. Die API verhindert, dass Anfragen über Ajax gestellt werden.

Um die API zu verwenden, müssen Sie Anforderungen vom Server und nicht vom Browser des Clients stellen.

Entschuldigen Sie die Zeit der Leute zu verschwenden, hoffentlich wird diese Antwort jedem helfen, der sich fühlt, als würden sie ihren Kopf gegen eine Mauer schlagen.