Je fournis un service Web qui renvoie des données en tant qu'objet JSON. Le problème est avec Ajax, Ajax ne peut pas appeler l'URL de domaine croisé. Est-il possible de le désactiver?Comment désactiver la restriction inter-domaine
2
A
Répondre
4
Vous ne pouvez pas le désactiver, mais vous pouvez résoudre le problème en acceptant JSONP -requests.
0
Utilisez JSONP si vous pouvez contrôler ce que l'autre serveur répond. JSONP doit renvoyer un script compatible javascript. (Var salut = {JSON = choses};)
Exemple pour le HTML client:
// This is our function to be called with JSON data
function showPrice(data) {
alert("Symbol: " + data.symbol + ", Price: " + data.price);
}
var url = “ticker.js”; // URL of the external script
// this shows dynamic script insertion
var script = document.createElement('script');
script.setAttribute('src', url);
// load the script
document.getElementsByTagName('head')[0].appendChild(script);
Dans ce cas, l'URL "de ticket.js" contient quelque chose comme ceci:
var data = {symbol: 'Hi', price: 91.42};
La deuxième possibilité est de créer un script local (php, perl, ruby, tout ce que vous utilisez) qui est un proxy vers la source JSON externe.
J'ai trouvé une bonne source qui explique comment utiliser Jsonp en utilisant des exemples http://blog.altosresearch.com/supporting-the-jsonp-callback-protocol-with-jquery-and-java/ – Tomas