fond:jsonp appelant WCF erreur retour
j'avais créé un service WCF (.NET 3.5) qui a été très bien fonctionner, une exigence est de consommer le service avec JavaScript et, en raison des restrictions de domaine croisées (La le service est sur un serveur différent de celui de la page Web qui contient le javascript), le post-test standard ne fonctionnait pas. J'ai changé de configuration, ajouté un attribut WebInvoke à la méthode selon un article de blog de Microsoft, et obtenu que le service fonctionne avec GET, et confirmé que la méthode fonctionnait en testant avec soapUI. J'essayais de mettre en place un exemple sur JSFiddle, mais comme il s'agit d'un service intranet, je ne pouvais évidemment pas le faire fonctionner.
est la méthode Ici, dans mon fichier SVC.cs: (je l'ai fait quelques changements de code et les modifications apportées au fichier de configuration tout en essayant de comprendre cela)
// On the interface that defines the contract
[OperationContract]
[WebGet]
string Post(string questionid, string answervalue);
// In my actual service file code behine.
public string Post(string questionid, string answervalue)
{
Guid dataid = _dataProvider.Post(questionid, answervalue);
_dataProvider.Log(retval.ToString());
return dataid.ToString();
}
maintenant si je tape juste l'URL, j'obtiens une représentation de chaîne du GUID en arrière qui représente cette valeur.
http://localhost/WebPostSvc.svc/json/Post?questionid=207&answervalue=207009
returns: "<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">04bb6445-b1af-4214-8f8b-cf66bb15467f</string>"
Voici le javascript que je suis en train de se rendre au travail:
<script type="text/javascript">
// string functions to allow formatted output
String.prototype.format = function() {
var args = arguments;
return this.replace(/{(\d+)}/g, function(match, number) {
return typeof args[number] != 'undefined'
? args[number]
: match
;
});
};
$(function()
{
$('.testpostbtn').click(function() {
$.jsonp({
url: "ttp://localhost/WebPostSvc.svc/json/Post?questionid=207&answervalue=207009",
callbackParameter: "callback",
"success" : function(data) {
alert(data);
},
"error" : function(d, msg) {
alert(
"Could not post the data\ncallback={0}\ncallbackParameter={1}\nurl={2}\n{3}\n"
.format(d.callback, d.callbackParameter, d.url, msg)
);
}
});
alert('request sent!');
});
});
</script>
La méthode .jsonp $ est de:
// jquery.jsonp 2.3.1 (c)2012 Julian Aubourg | MIT License
// https://github.com/jaubourg/jquery-jsonp
Tout ce que je dois travailler avec est le erreur retournée par la méthode, que j'ai envoyé à une boîte d'alerte:
Could not post the data
callback=_jqjsp
callbackParameter=callback
url=http://localhost/WebPostSvc.svc/json/Post?questionid=207&answervalue=207009
error
Le seul message d'erreur renvoyé est "error", ce qui n'est pas très utile.
Je suis certain que je suis juste en utilisant la méthode de manière incorrecte, et je dois savoir:
Qu'est-ce que je fais mal?