title: JSONP WCF Method Not Allowed
body: <p>I have my WCF contact defined below</p>
  
  <pre><code>   [OperationContract]
      [WebInvoke(Method = "POST",
          ResponseFormat = WebMessageFormat.Json,
          RequestFormat = WebMessageFormat.Json,
          BodyStyle = WebMessageBodyStyle.Wrapped,
          UriTemplate = "GetUrlContent"
  
           )]
      List&lt;string&gt; GetUrlContent(List&lt;string&gt; urls);
  }
  </code></pre>
  
  <p>I have </p>
  
  <pre><code>&lt;binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" /&gt;
  </code></pre>
  
  <p>My JS looks like this</p>
  
  <pre><code>    var Url = "http://192.168.1.100/WebContent.svc/GetUrlContent?callback=?";
  var postdata= [];
  postdata.push("http://cnn.com");
  postdata.push("http://bbc.com");
  
      $.getJSON(Url , JSON.stringify(postdata), function (msg) {
          for (i in msg) {
  
              console.log(msg[i]);
          }
      });
  </code></pre>
  
  <p>Err Msg i Get is</p>
  
  <blockquote>
    <p>"NetworkError: 405 Method Not Allowed -
    http://192.168.1.100/WebContent.svc/GetUrlContent?callback=jQuery183043170534494375234_1365725164391&amp;[%22http://cnn.com%22,%22http://bbc.com%22]&amp;_=1365725173310"</p>
  </blockquote>
  
  <p>EDIT
  This is my new Error message</p>
  
  <pre><code> Exception type: InvalidOperationException 
      Exception message: Operation 'GetUrlContent' in contract 'IFetchWebContent' uses GET, but also has body parameter 'urls'. GET operations cannot have a body. Either make the parameter 'urls' a UriTemplate parameter, or switch from WebGetAttribute to WebInvokeAttribute.
     at System.ServiceModel.Description.WebHttpBehavior.ValidateGETHasNoBody(OperationDescription operation, String method)
     at System.ServiceModel.Description.WebHttpBehavior.&lt;&gt;c__DisplayClass10.&lt;&gt;c__DisplayClass13.&lt;GetRequestDispatchFormatter&gt;b__d()
  </code></pre>