Ajax JSON页面上直接跨域访问会遇到诸多问题:无法正常访问以及无法正常获取返回值等
可通过Ajax方式呼叫后台程式,交由java.net去呼叫跨域地址,解决此问题
以下為部分程式:
import java.net.URL;
import java.net.URLConnection;
static String url = "http://api.xxx.xxx.com/xxx/xxx?xxx=xx&xxx=xxx";
public String sendShortMessage(String smsSrc, String mobileNo) {
String line = "";
StringBuffer sb = new StringBuffer();
try {
URL u = new URL(url);
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
while ((line = in.readLine()) != null) {
sb.append(line);
System.err.println("readLine: " + sb.toString());
// 此处获得即为跨域访问的返回值,这次测试获取的是JSON格式的字串
}
in.close();
}
catch (Exception e) {
e.printStackTrace();
}
return new String(sb);
}