To, co dokładnie próbuję zbudować, to INTERFEJS, dzięki któremu użytkownik może wysyłać żądania postów do mojej witryny i wyświetlać odpowiedź w swojej przeglądarce.
Na przykład
$.post(
"http://www.mysite.com/thirdpartyrequest.php",
{ param1: value1, param2: value2 },
function(data) {
$("#universalid").html(data);//Update with the response
}
);
//however it is not allowed.
Każdy pomysł, jak wykonać takie żądanie Ajax witryny
Odpowiedzi:
4 dla odpowiedzi № 1Najlepiej jest użyć JSONP. Sprawdzić:
http://api.jquery.com/jQuery.getJSON/
http://en.wikipedia.org/wiki/JSON
Jeśli masz serwer dostarczający dane takie jak:
http://my.server.com/somedata.json
{
"some": ["fancy", "json" ],
"structure: "here"
}
Przekształcasz to w jsonp, podając parametr wywołania zwrotnego w adresie URL żądania - de facto jest to jego standardowa nazwa callback
. Następnie na serwerze, musisz sprawdzić ten parametr i zawinąć wynik w tym wywołaniu zwrotnym (skutecznie zamieniając go w javascript zamiast json).
http://my.server.com/somedata.json?callback=receive_this
receive_this({
"some": ["fancy", "json" ],
"structure: "here"
});
(Dla wąskości powinien to być typ mime odpowiedzi dla jsona application/json
podczas gdy dla jsonp powinno być application/javascript
)
Klient teraz (koncepcyjnie) załaduje json w ten sposób:
<script type="text/javascript">
var receive_this = function(json) {
// do some stuff with data here.
};
</script>
<script type="text/javascript" src="http://my.server.com/somedata.json?callback=receive_this"></script>
W praktyce używasz czegoś takiego jak jQuery do dynamicznego wstawiania tagu skryptu żądania jsonp do DOM. jQuery domyślnie wywołuje parametr żądania wywołania zwrotnego callback
.
$.ajax({
url: "http://my.server.com/somedata.json",
dataType: "jsonp",
success: receive_this
});